Вставьте целые числа в лист Excel - PullRequest
0 голосов
/ 27 марта 2019

При вставке данных с использованием oledb в таблицу Excel целые числа отображаются только как целые числа:

enter image description here

Я уже пытался изменить свойства следующей строки подключения:

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 правильно, то есть в правильном формате.

1 Ответ

3 голосов
/ 27 марта 2019

Я запустил этот код, и у меня не возникло проблем после его замены на следующее:

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 быть целым числом.

...