OdbcConnection Microsoft Excel驱动程序仅读取第一行第一列

时间:2014-03-20 20:18:51

标签: c#

我的C#代码正在为excel文件工作,并且正在读取所有行,但对于另一个文件,它只读取第一行和第一列。 连接字符串:

sConnStr1 = "Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};Dbq=" + info1.FullName + ";DefaultDir=" + info1.Directory + ";";

代码:

    System.Data.Odbc.OdbcConnection conn;
    DataTable dt1 = new DataTable();
    System.Data.Odbc.OdbcDataAdapter da;
    string file = sFilePath;
        conn = new System.Data.Odbc.OdbcConnection(sConnStr1);
        da = new System.Data.Odbc.OdbcDataAdapter(sDAstr1, conn);
        da.Fill(dt1);

有人可以指导我。这是我面临完成申请的最后一个问题。

1 个答案:

答案 0 :(得分:0)

除非您在Excel中使用特定格式,否则上述代码应该有效。下面是我尝试打开多个excel文件并且正在运行的示例代码。

    try
        {

            string connectionString = @"Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};DBQ=C:\Temp\temp.xlsx;";

            System.Data.Odbc.OdbcConnection connection;
            System.Data.DataTable dataTable = new System.Data.DataTable("excelImport");
            System.Data.Odbc.OdbcDataAdapter dataAdapter;

            string m_selectSQL = "SELECT * FROM [Sheet1$]";
            connection = new System.Data.Odbc.OdbcConnection(connectionString);
            dataAdapter = new System.Data.Odbc.OdbcDataAdapter(m_selectSQL, connection);
            dataAdapter.Fill(dataTable);
        }
        catch (Exception e)
        {

        }