Импорт данных Excel в Datatable путем преобразования значений ячеек в строковый формат - PullRequest
0 голосов
/ 18 февраля 2019

Я пытаюсь прочитать файл Excel в таблицу данных, и я получаю данные успешно, но десятичные значения усекаются при чтении данных в таблицу данных

Итак, если у меня есть значение ячейкикак 64,00, я получаю 64 вместо 64,00 в таблице данных.

Я попытался отформатировать значение ячейки Excel как текст, но не сработало.

Ниже приведен код, с которым я работаювкл.

 public static DataTable GetDataTableFromCsv(string path, bool 
 isFirstRowHeader)
    {
        string header = isFirstRowHeader ? "Yes" : "No";

        string pathOnly = System.IO.Path.GetDirectoryName(path);
        string fileName = System.IO.Path.GetFileName(path);

        string sql = @"SELECT * FROM [" + fileName + "]";

        using (OleDbConnection connection = new OleDbConnection(
                  @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + pathOnly +
                  ";Extended Properties=\"Text;HDR=" + header + "\""))
        using (OleDbCommand command = new OleDbCommand(sql, connection))
        using (OleDbDataAdapter adapter = new OleDbDataAdapter(command))
        {
            DataTable dataTable = new DataTable();
            dataTable.Locale = CultureInfo.CurrentCulture;
            adapter.Fill(dataTable);
            return dataTable;
        }
    }

1 Ответ

0 голосов
/ 18 февраля 2019

Если вы этого еще не сделали, вы можете попытаться получить содержимое ячейки с помощью Worksheet.Cell [x, y] .Text, который вынуждает вывод в строковый литерал, поэтому он пропускает чтение усекающего усечения

...