将Excel导出到System.DataTable时出现未知问题

时间:2011-08-02 14:14:28

标签: c# asp.net excel datatable oledb

我正在尝试将数据从Excel文件传输到DataTable。
这是我的代码片段:

 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的格式如下:
第一排标题
第二部分文字
第3行空白
第四个表格 10列& 298行。

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

1 个答案:

答案 0 :(得分:1)

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

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