使用oledb将数据插入到Excel工作表中,整数仅显示为整数:
我已经尝试更改以下连接字符串的属性:
string szConnectionString = $"Provider=Microsoft.ACE.OLEDB.12.0;Data Source='" + myFilePath + "';Extended Properties=\"Excel 12.0;HDR=YES;Readonly=False;\"";
此外,我还尝试创建一个具有数据类型的新工作表/表格:
cmd.CommandText = "CREATE TABLE [data3] (quarter VARCHAR, value INT);";
按照我当前的代码插入数据:
cmd.CommandText = "CREATE TABLE [data3] (quarter VARCHAR, value INT);";
cmd.ExecuteNonQuery();
cmd.CommandText = "INSERT INTO [data3$]([quarter ],[value]) VALUES(?,?)";
cmd.Parameters.AddWithValue("@p1", "2018.06");
cmd.Parameters.AddWithValue("@p2", 13); // <-- INT
cmd.ExecuteNonQuery();
我希望数据可以正确插入到excel中,也就是说格式正确。
答案 0 :(得分:2)
我运行了这段代码,将其更改为以下代码后没有任何问题:
cmd.CommandText = "CREATE TABLE [data3] (quarter VARCHAR, value INT);";
cmd.ExecuteNonQuery();
cmd.CommandText = "INSERT INTO [data3$]([quarter],[value]) VALUES(@Q1,@V1)";
cmd.Parameters.AddWithValue("@Q1", "2018.06");
cmd.Parameters.Add("@V1", SqlDbType.Int);
cmd.Parameters["@V1"].Value = 13;
cmd.ExecuteNonQuery();
我进行了一些更改,并将value参数强制为整数。