【发布时间】:2016-04-25 21:48:35
【问题描述】:
我有一个程序,用户可以在其中选择一个 Excel 电子表格。然后,该程序使用 OLE.DB 从该 excel 文件中读取数据,并将该数据存储到 DataTable 中。我的问题是,当我从带有前导零的 excel 电子表格中导入条形码时,它们会被修剪。我的列被格式化为文本。以下是我的代码:
public DataTable GetExcelInfo(string filepath)
{
DataTable datatab = new DataTable();
try
{
string connectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filepath + ";Excel 8.0;IMEX=1;HDR=NO;TypeGuessRows=1;ImportMixedTypes=Text\\";
using (OleDbConnection conn = new OleDbConnection(connectionString))
{
conn.Open();
OleDbDataAdapter adapt = new OleDbDataAdapter("SELECT Format([F1], \"#\"), [F2], [F3] FROM [Sheet1$]", conn);
adapt.Fill(datatab);
}
}
catch (Exception e)
{
ErrorReporting.File(e, "GetExcelInfo");
}
return datatab;
}
【问题讨论】:
-
为什么不使用
OleDbDataReader而不是OleDbDataAdapter?这样,您可以在从 excel 读取时控制每一列的内容。