无法读取单元格包含Excel中的“$”

时间:2015-02-08 12:31:47

标签: c# excel winforms vba excel-vba

我正在使用此代码从excel中读取,但是有些单元格{D2,D4}可以从excel文件中读取它们,其中包含(' $'){D2,D4}

OpenFileDialog ex = new OpenFileDialog();
ex.Filter = "XLS|*.xls|All|*.*";

if (ex.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
    try
    {
        var connectionString = string.Format("Provider=Microsoft.Jet.OLEDB.4.0; data source={0}; Extended Properties=Excel 8.0;", ex.FileName);
        var adapter = new OleDbDataAdapter("SELECT * FROM [Sheet7$]", connectionString);
        var ds = new DataSet();
        adapter.Fill(ds);
        DataTable data = ds.Tables[0];
        DATAGRID1.DataSource = data;
    }

那么如何获得如图所示的这个值?

enter image description here

2 个答案:

答案 0 :(得分:0)

更改您的连接字符串以强制驱动程序将所有数据视为文本,而不是对数字,日期等进行假设。您可以通过添加" IMEX = 1;":

来执行此操作
Provider=Microsoft.Jet.OLEDB.4.0; data source={0}; Extended Properties=Excel 8.0;IMEX=1

当然,一旦检索数据以将内容转换回所需的数据类型,您将需要做更多的工作。

答案 1 :(得分:0)

应强制它同等对待所有文本

Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1""