【问题标题】:Unknown problem while exporting excel to System.DataTable将 excel 导出到 System.DataTable 时出现未知问题
【发布时间】:2011-10-18 07:34:03
【问题描述】:

我正在尝试将数据从 Excel 文件获取到 DataTable。
这是我的代码-sn-p:

 FilePath = WebConfig.SavePath + "Book2.xls";

            // Create the connection object
            OleDbConnection oledbConn = new OleDbConnection(WebConfig.ExcelConnection(FilePath));
            // Open connection
            oledbConn.Open();

            // Create OleDbCommand object and select data from worksheet Sheet1 //WebConfig.SheetNameFirstExcel
            OleDbCommand cmd = new OleDbCommand("SELECT * FROM [" + "Sheet1" + "$]", oledbConn);

            // Create new OleDbDataAdapter
            OleDbDataAdapter oleda = new OleDbDataAdapter();

            oleda.SelectCommand = cmd;

            // Create a DataSet which will hold the data extracted from the worksheet.
            DataTable dt = new DataTable();

            // Fill the DataSet from the data extracted from the worksheet.
            oleda.Fill(dt);


问题在于,某些单元格的数据被导出到数据表,而另一些则不是。
excel的格式是这样的:
第一行标题
第二部分文字
第三行空白
第 4 位以后的桌子
10 列和 298 行。

上面的代码中缺少什么,或者任何将此类 excel(.xlsx) 提取到 asp.net 3.5 中的数据表的建议

【问题讨论】:

标签: c# asp.net excel datatable oledb


【解决方案1】:

鉴于您遇到的所有问题,我怀疑标准 oledb 驱动程序由于表格数据之前的文本行而无法正确读取您的 excel 文件。

如何离开并使用此库 http://epplus.codeplex.com/ 手动编写代码以读取 xlsx 文件并创建数据表或数据库记录

【讨论】:

  • 感谢 Fadrian,我也使用过 code.google.com/p/excellibrary 但在将此 Excel 加载到工作簿时出现内存异常
  • 可能该文件包含导致加载问题的有趣字符。尝试将值复制并粘贴到新文件中,然后重试
  • 很抱歉再次打扰您。首先非常感谢 EPPlus 为我工作!唯一的问题是它不支持 MS Office Excel 2003
  • 你也可以看看我认为支持 xls 的 codeplex 上的 npoi
猜你喜欢
  • 1970-01-01
  • 2011-09-28
  • 1970-01-01
  • 2010-11-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-04
相关资源
最近更新 更多