Мне нужно написать программу, которая читает файл 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
чисел в произвольном порядке.
Я неправильно получаю данные?Я что-то упускаю?Я с удовольствием отвечу на любые вопросы.Заранее спасибо.