Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.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# 在C中使用OleDbConnection读取Excel工作表时缺少数据#_C#_Excel_Oledbconnection - Fatal编程技术网

C# 在C中使用OleDbConnection读取Excel工作表时缺少数据#

C# 在C中使用OleDbConnection读取Excel工作表时缺少数据#,c#,excel,oledbconnection,C#,Excel,Oledbconnection,我需要读取excel数据并存储在数据库中。 当我尝试读取数据时,有一些数据丢失,我无法找到 这是我的excel表格 我的代码: private string Excel03ConString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties='Excel 8.0;HDR={1}'"; [![//Get the name of the First Sheet. using (

我需要读取excel数据并存储在数据库中。 当我尝试读取数据时,有一些数据丢失,我无法找到

这是我的excel表格

我的代码:

private string Excel03ConString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties='Excel 8.0;HDR={1}'";

 [![//Get the name of the First Sheet.
            using (OleDbConnection con = new OleDbConnection(conStr))
            {
                using (OleDbCommand cmd = new OleDbCommand())
                {
                    cmd.Connection = con;
                    con.Open();
                    DataTable dtExcelSchema = con.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
                    sheetName = dtExcelSchema.Rows\[0\]\["TABLE_NAME"\].ToString();
                    con.Close();
                }
            }

            //Read Data from the First Sheet.
            using (OleDbConnection con = new OleDbConnection(conStr))
            {
                using (OleDbCommand cmd = new OleDbCommand())
                {
                    using (OleDbDataAdapter oda = new OleDbDataAdapter())
                    {

                        cmd.CommandText = "SELECT * From \[" + sheetName + "\]";
                        cmd.Connection = con;
                        con.Open();
                        oda.SelectCommand = cmd;
                        oda.Fill(dtExcelData);
                        con.Close();

                        //Populate DataGridView.
                        //dataGridView1.DataSource = dt;
                    }
                }
            }

            dtExcelData = dtExcelData.AsEnumerable().Skip(2).Take(1).CopyToDataTable();

            return dtExcelData;][2]][2]
在OLEDB连接中读取后的数据:


excel工作表中有一些合并单元格,最好直接访问单元格

我想这里也可以帮助你:


您可以轻松地将该类用于您的项目;

King,你想读取所有数据(包括标题)还是只获取数据(没有标题)?嗨,Mac,你好,数据已经足够了。在连接中设置IMEX=1之后,现在它开始工作了!使用IMEX=1是一种很好的做法,但必须定义要读取的范围。请参阅