Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将excel导出到System.DataTable时出现未知问题_C#_Asp.net_Excel_Datatable_Oledb - Fatal编程技术网

C# 将excel导出到System.DataTable时出现未知问题

C# 将excel导出到System.DataTable时出现未知问题,c#,asp.net,excel,datatable,oledb,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

我正在尝试将数据从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的格式类似于:
第一行标题
第二部分文本
第三行空白
第四张桌子往前走
共有10列和298行。

上面的代码中缺少什么,或者对在asp.net 3.5中将此类excel(.xlsx)提取到datatable有什么建议

鉴于您存在的所有问题,我怀疑标准oledb驱动程序无法正确读取excel文件,因为表格数据之前有一行文本


如果您遇到所有问题,我怀疑标准oledb驱动程序无法正确读取excel文件,因为表格数据之前有一行文本


请移开并使用此库手动编写代码以读取xlsx文件,并创建datatable或db记录

查看我对此的回应@Fadrian:这就是我在config:Provider=Microsoft.Jet.OLEDB.4.0中使用的内容;数据源={0};扩展属性=Excel8.0,此提供程序也=Microsoft.ACE.OLEDB.12.0;数据源={0};Extended Properties=Excel 12.0“我想这应该是这个问题的原因!我的问题与类似,但仍然找不到合适的解决方案请参阅我对此@Fadrian的回答:这是我在config:Provider=Microsoft.Jet.OLEDB.4.0中使用的内容;数据源={0};Extended Properties=excel8.0,并且此提供程序=Microsoft.ACE.OLEDB.12.0;数据源={0};Extended Properties=excel12.0”,我想这应该是出现此问题的原因!我的问题与类似,但仍然找不到合适的解决方案感谢Fadrian,我也使用了,但在将此Excel加载到工作簿时出现内存不足异常可能文件包含导致加载问题的有趣字符。尝试复制并粘贴为新文件的值,然后再次尝试,以免再次打扰您。首先,非常感谢EPPlus为我工作!!唯一的问题是它不支持MS Office Excel 2003您也可以查看codeplex上的npoi,它支持xls,我想谢谢Fadrian,我也使用过,但它在将此Excel加载到工作簿时给了我内存不足的异常可能文件包含导致加载问题的有趣字符。尝试复制并粘贴为新文件的值,然后再次尝试,以免再次打扰您。首先,非常感谢EPPlus为我工作!!唯一的问题是它不支持MS Office Excel 2003。我想你也可以看看codeplex上支持xls的npoi