Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/264.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#.net 4.0中使用XLS的主要问题_C#_.net_C# 4.0_Xls - Fatal编程技术网

在c#.net 4.0中使用XLS的主要问题

在c#.net 4.0中使用XLS的主要问题,c#,.net,c#-4.0,xls,C#,.net,C# 4.0,Xls,我有一个xls文件,我想用c#读取,并将信息填充到数据表中。我使用的代码是: public static DataTable GetExcelData(string excelFilePath) { OleDbConnection objConn = null; string oledbConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + excelFilePath + ";Extended P

我有一个xls文件,我想用c#读取,并将信息填充到数据表中。我使用的代码是:

public static DataTable GetExcelData(string excelFilePath)
{
    OleDbConnection objConn = null;
    string oledbConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + excelFilePath + ";Extended Properties=Excel 10.0;";
    objConn = new OleDbConnection(oledbConnectionString);

    if (objConn.State == ConnectionState.Closed)
    {
        objConn.Open();
    }
    var objCmdSelect = new OleDbCommand("Select * from [Sheet1$]", objConn);
    var objAdapter = new OleDbDataAdapter();
    objAdapter.SelectCommand = objCmdSelect;
    var objDataset = new DataSet();
    objAdapter.Fill(objDataset, "ExcelDataTable");
    objConn.Close();
    return objDataset.Tables[0];
}
填充此数据表后,我需要删除前5行左右的包含标题信息的行,并循环填充access数据库表的数据表。我在这方面或其他10000种建议方式中都没有运气。有没有人有什么信息可以帮助我。我正在运行VS2010.NET4.0框架。非常感谢您的任何帮助

谢谢,
John

我在尝试使用OLEDB将Excel数据导入数据表时遇到了很多麻烦。我最终通过切换到使用Excel互操作的解决方案解决了这个问题。有关进一步解释和示例代码,请参见此答案:


你可以用艰难的方法或简单的方法来完成。困难的方法当然是假设电子表格类似于数据库。或者您可以只使用Microsoft.Office.Interop.Excel命名空间中的类。电子表格的格式将始终相同。我寻找的过程是:1。将电子表格读入某种临时保存表,然后将该数据放入access数据库。字段映射是直截了当的,我想知道的是如何将电子表格读入数据表,用我不需要的信息切断数据表中的行,然后将数据表中的数据写入具有相同名称字段的访问表。我想这不可能那么难,但我对提到的任何方法都没有运气。