【发布时间】:2016-04-04 14:25:13
【问题描述】:
我有一个包含 500 列的 Excel 文件。我正在使用 OLEDB 将其导入 DataTable。但 DataTable 仅包含前 255 列。我不明白为什么没有导入其余的列。
我的代码是
public DataTable ToDataTable()
{
DataSet dsEmpMaster = new DataSet();
DataTable dtEmpMaster = null;
string strConnectionString;
string strSql;
string FileNameWithPath = String.Format("{0}\\{1}", System.IO.Path.GetDirectoryName(System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName), _FileName);
try
{
dtEmpMaster = new DataTable();
strConnectionString = String.Format(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=Excel 12.0;", FileNameWithPath);
strSql = String.Format("SELECT * FROM [{0}$]", _SheetName);
OleDbDataAdapter adpMasterData = new OleDbDataAdapter(strSql, strConnectionString);
adpMasterData.Fill(dsEmpMaster);
dtEmpMaster = dsEmpMaster.Tables[0];
adpMasterData.Dispose();
}
catch (Exception ex)
{
_ExcelError = ex.Message;
}
【问题讨论】:
-
也许您应该使用 EPPlus、NPOI 或 Office XML SDK 而不是 OLEDB。
标签: c# excel datatable oledbdataadapter