С# – Как перебрать все строки в Excel._Worksheet?

Вопрос:Я хочу программно извлекать данные из листа Excel и вставлять их в таблицу базы данных. Как определить количество столбцов и строк на листе или иначе перебрать строки? У меня Excel._Worksheet worksheet = (Excel._Worksheet)workbook.ActiveSheet; Я пробовал worksheet.Range.Rows.Count который выдает Индексированное свойство "Microsoft.Office.Interop.Excel._Worksheet.Range" имеет необязательные аргументы, которые должны быть предоставлены Что нужно сделать? Лучший ответ: Я предполагаю,

Вопрос:

Я хочу программно извлекать данные из листа Excel и вставлять их в таблицу базы данных.

Как определить количество столбцов и строк на листе или иначе перебрать строки?

У меня

Excel._Worksheet worksheet = (Excel._Worksheet)workbook.ActiveSheet;

Я пробовал worksheet.Range.Rows.Count

который выдает

Индексированное свойство “Microsoft.Office.Interop.Excel._Worksheet.Range” имеет необязательные аргументы, которые должны быть предоставлены

Что нужно сделать?

Лучший ответ:

Я предполагаю, что вы действительно ищете последнюю использованную строку. В этом случае вам нужно написать его следующим образом:

Range UsedRange = worksheet.UsedRange; int lastUsedRow = UsedRange.Row + UsedRange.Rows.Count — 1; Ответ №1public void IterateRows(Excel.worksheet worksheet) { //Get the used Range Excel.Range usedRange = worksheet.UsedRange; //Iterate the rows in the used range foreach(Excel.Range row in usedRange.Rows) { //Do something with the row. //Ex. Iterate through the row data and put in a string array String[] rowData = new String[row.Columns.Count]; for(int i = 0; i < row.Columns.Count; i++) rowData[i] = row.Cells[1, i + 1].Value2.ToString(); } }

Это компилируется и работает просто отлично для меня! Я использую его для извлечения строк с отсутствующими полями в журнал ошибок.

Ответ №2

Посмотрите на свойство UsedRange в Excel.

Оцените статью
Добавить комментарий