У меня есть набор данных в Excel и я использую C#, чтобы открыть рабочий лист и получить доступ к некоторым данным.Как получить все строки, содержащие данные в определенном столбце в Excel с C#
Я пытаюсь получить все строки, содержащие данные из определенного столбца. Например, в столбце B
, начиная с ячейки «B3», я хочу сохранить все строки, содержащие данные в коллекции, например массиве.
Это то, что я до сих пор:
Application excelApplication;
_Workbook workbook;
_Worksheet sheet;
excelApplication = new Excel.Application
{
Visible = true,
ScreenUpdating = true
};
workbook = excelApplication.Workbooks.Open(@"C:\Documents and Settings\user\Desktop\Book1.xls");
sheet = (Worksheet)workbook.Worksheets[2];
Excel.Range range = sheet.Range["b3:b145"].
foreach (Range cell in range)
{
// Do something with rows which contain data
}
Как вы можете видеть выше, я указал диапазон от B3 до B45, которые я не хочу. Я хочу получить все строки в столбце B, содержащие данные, начиная с B3.
Как бы я мог достичь этого?
Но для чего я устанавливаю объект 'range'? в моем коде я имел 'range = sheet.Range [" b3: b145 "];' но я не хочу указывать диапазон сам, я хочу работать в C#, какие ячейки имеют данные в столбце B – user3574492
Установите ' range' в столбец B, например 'range = sheet.Range [" B3 "];' затем проверить Rows.Count. В вашем for-loop пропускают ячейки IsNullOrEmpty. Я не уверен, что вы хотите, чтобы промежутки в последовательности (из столбцов B) сохранялись или нет. –
Rows.Count возвращает 1, если я устанавливаю диапазон в 'range = sheet.Range [" b3 "];' – user3574492