我正在使用此代码从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;
}
那么如何获得如图所示的这个值?
答案 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""