Я пытаюсь написать приложение, которое откроет электронную таблицу Excel, чтобы найти рабочий лист с правильным именем и выполнить итерацию по строкам, пока не найду ячейку в столбце 0, которая содержит текст «Дата окончания », а затем прочитайте до тех пор, пока я не найду первую пустую ячейку (колонка 0 также). Я зацикливаюсь на том, как перебирать строки.Поиск и извлечение данных из Excel
Вот что я до сих пор:
public static void LoadFromFile(FileInfo fi)
{
Application ExcelObj = new Application();
if (ExcelObj != null)
{
Workbook wb = ExcelObj.Workbooks.Open(fi.FullName,
Type.Missing, true, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing);
Sheets sheets = wb.Worksheets;
foreach (Worksheet ws in sheets)
{
if (ws.Name == "Raw Data")
LoadFromWorkSheet(ws);
}
wb.Close(false, Type.Missing, Type.Missing);
}
}
public static void LoadFromWorkSheet(Worksheet ws)
{
int start = 0;
int end = 0;
// Iterate through all rows at column 0 and find the cell with "Cont Date"
}
Видимо, вы не можете
foreach(Row row in worksheet.Rows)
{
}
EDIT ::
То, что я сделал это:
for (int r = 0; r < 65536; r++)
{
string value = ws.Cells[r, 0].Value;
}
Что дает мне следующий exce ption при попытке прочитать значение ячейки:
Exception from HRESULT: 0x800A03EC
Нет, это должно быть ws.Cells [r, 1]. Столбцы начинаются с 1 –