使用jet.oledb.4.0导入Excel工作表,将第一行设置为列名 - c#

我正在尝试使用Jet.Oledb将Excel文件导入数据表。这是我的代码:

            string sourceConstr = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source='" + HttpContext.Current.Server.MapPath("~/" + fileName) + "';Extended Properties='Excel 8.0;HDR=No;IMEX=1'";
            OleDbConnection con = new OleDbConnection(sourceConstr);
            OleDbCommand oleDbCmd = new OleDbCommand();
            con.Open();
            oleDbCmd.Connection = con;
            DataTable dt = con.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);

            string firstExcelSheetName=dt.Rows[0][2].ToString();
            string query = "select * from [" + firstExcelSheetName + "]";
            OleDbDataAdapter data = new OleDbDataAdapter(query, con);
            data.TableMappings.Add("Table", "dtExcel");
            data.Fill(dtExcel);

在excel文件中,第一行具有列名。但我的数据表正在获取(f1,f2,f3,...)作为列名,而excel文件的第一行作为第一行。因此,我可以猜测我必须告诉第一行包含columnName。但是我该如何实现呢?

参考方案

从connectionstrings.com引用:

“ HDR =是;”表示第一行包含列名,而不是数据。 “ HDR =否;”表示相反。

因此,您可以尝试更改连接字符串以设置HDR=Yes

当回复有时是一个对象有时是一个数组时,如何在使用改造时解析JSON回复? - java

我正在使用Retrofit来获取JSON答复。这是我实施的一部分-@GET("/api/report/list") Observable<Bills> listBill(@Query("employee_id") String employeeID); 而条例草案类是-public static class…

改造正在返回一个空的响应主体 - java

我正在尝试使用Retrofit和Gson解析一些JSON。但是,我得到的响应机构是空的。当我尝试从对象中打印信息时,出现NullPointerException。我确保URL正确,并且我也确保POJO也正确。我正在使用jsonschema2pojo来帮助创建POJO类。这是我要解析的JSON{ "?xml": { "@versi…

System.Data.OleDb.OleDbException:INSERT INTO语句中的语法错误 - c#

public void RegisterUser(string passw,string uname ,string fname ,string lname, string email) { string strSql = @"INSERT INTO User (passw,uname,fname,lname,email) values (…

每个文件合并后添加换行 - python

我有很多类似以下内容的JSON文件:例如。1.json{"name": "one", "description": "testDescription...", "comment": ""} test.json{"name"…

Json到php,json_decode返回NULL - php

我正在用PHP进行JSON解析器的一些API,用于存储有关遗产的信息。我在解析时遇到问题,因为它返回的是NULL值而不是数组或对象。简单的JSON代码可以很好地解析,但是可以这样:{"success":true,"totalCount":1,"data":[{"id":99694…