В настоящее время я пишу систему, которая включает чтение в файлах Excel.Я хочу прочитать в этом файле Excel и, возможно, выбросить его в CSV.Однако проблема, с которой я сталкиваюсь, заключается в том, что он сохраняет формат, который использует Excel.Например, у меня есть длинный номер, который в Excel отображается как 3.9151 + E15, и он читает его следующим образом.Когда я выделяю ячейку в Excel, она показывает реальное число «3915100000026840».Это номер, который я хочу получить.Это также добавляет временную метку к датам, которые я не хочу.Это добавляет 00:00 00: 00: 000 или что-то похожее на 17/05/2018, и это все, что я хочу.В общем, я хочу получить реальные текстовые значения из этой таблицы Excel.
Код, который у меня есть на данный момент:
public static DataTable READExcel(string path)
{
Microsoft.Office.Interop.Excel.Application objXL = null;
Microsoft.Office.Interop.Excel.Workbook objWB = null;
objXL = new Microsoft.Office.Interop.Excel.Application();
objWB = objXL.Workbooks.Open(path);
Microsoft.Office.Interop.Excel.Worksheet objSHT = objWB.Worksheets[1];
int rows = objSHT.UsedRange.Rows.Count;
int cols = objSHT.UsedRange.Columns.Count;
DataTable dt = new DataTable();
int noofrow = 1;
for (int c = 1; c <= cols; c++)
{
string colname = objSHT.Cells[1, c].Value.ToString();
dt.Columns.Add(colname);
noofrow = 2;
}
for (int r = noofrow; r <= rows; r++)
{
DataRow dr = dt.NewRow();
for (int c = 1; c <= cols; c++)
{
dr[c - 1] = objSHT.Cells[r, c].Value.ToString();
}
dt.Rows.Add(dr);
}
objWB.Close();
objXL.Quit();
return dt;
}
(Также другой вопрос, который немного связан, но немного несвязанный, у меня был CSV для запуска, который имел значение «0003915100000026845». Когда я превратил этот CSV в файл Excel, он изменил его на значение, на которое я ссылаюсь выше. Excel запомнит эти лидирующие нули где-нибудь или нет?)