Чтение из Excel оставляет пустые ячейки C # - PullRequest
0 голосов
/ 21 февраля 2019

Мне нужно написать программу, которая читает файл Excel и помещает его в DataTable для экспорта в другой файл Excel с измененными заголовками столбцов.Данные в столбцах должны оставаться неизменными.В настоящее время я могу получить его до DataTable, хотя мне не хватает тонны информации (отдельные ячейки остаются пустыми / пустыми).

Вот как выглядит мой файл Excel:

+----------------------------------------------+
|  ID   |  AccNum  | CustName  | City  | State | 
+----------------------------------------------+
| 02345 |  065812  | CustName1 | City1 |  KS   |
| 02346 |  087425  | CustName2 | City2 |  MO   |
| 02347 |  054785  | CustName3 | City3 |  KS   |
| ..... |  ......  | ......... | ..... |  ..   |
+----------------------------------------------+

Код для чтения Excel в DataTable:

public DataTable ReadExcel(string fileName, string TableName)
{
    //Creates new DataTable for results
    DataTable table = new DataTable();
    //Creates connection string for Excel file
    OleDbConnection connection = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + fileName + ";Extended Properties=\"Excel 8.0\"");
    //Creates command to be ran
    OleDbCommand cmd = new OleDbCommand("SELECT * FROM [" + TableName + "$]", connection);

    try
    {
        //Launches connection
        connection.Open();
        //Creates and Executes data reader
        OleDbDataReader reader = cmd.ExecuteReader();
        //Loop until the reader closes
        while (!reader.IsClosed)
        {
            //Load reader data to DataTable
            table.Load(reader);
        }
    }
    catch (OleDbException ode)
    {
        Console.WriteLine("ERROR: " + ode.Message);
    }
    finally
    {
        //No matter what- close the connection
        connection.Close();
    }


    //Return the DataTable
    return table;
}

Мой ожидаемый результат должен совпадатьобразец формата файла Excel.Однако я получаю следующее:

+----------------------------------------------+
|  ID   |  AccNum  | CustName  | City  | State | 
+----------------------------------------------+
|  2345 |   65812  | CustName1 | City1 |  KS   |
|       |   87425  | CustName2 | City2 |  MO   |
|  2347 |   54785  | CustName3 | City3 |  KS   |
| ..... |  ......  | ......... | ..... |  ..   |
+----------------------------------------------+

Единственные недостающие данные - это число ID вместе с некоторыми ведущими нулями, которые нужно сохранить.С этими примерами данных, ради длины поста, я предоставил только три образца customer.Чем больше данных, тем больше пропущенных ID чисел в произвольном порядке.

Я неправильно получаю данные?Я что-то упускаю?Я с удовольствием отвечу на любые вопросы.Заранее спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...