Как получить только те столбцы в таблице EXCEL, которые имеют значение - PullRequest
3 голосов
/ 30 мая 2011

Я программно читаю файл Excel в C #.

Когда я использую Excel.Worksheet.Columns.columns.count, я получаю значение выше 16 000.

Но мой лист Excel содержит только 15 столбцов. Как получить только те столбцы, которые имеют значение ?

Ответы [ 2 ]

4 голосов
/ 30 мая 2011

Вот как я обычно это делаю:

Excel.Application demoApp= new Excel.Application();
demoApp.Workbooks.Open(fileName);
int rowCount = demoApp.ActiveSheet.UsedRange.Rows.Count;
int colCount = demoApp.ActiveSheet.UsedRange.Columns.Count;

, поэтому ключ должен использовать UsedRange , надеюсь, это поможет.

0 голосов
/ 30 мая 2011

Пытаясь автоматизировать Excel, вы можете сначала выяснить, как делать то, что вы хотите в Excel, а затем выяснить, как это сделать, используя API автоматизации.

Представьте, что вы используете "настоящий" Excel и размещаете активную ячейку в самом конце строки, содержащей столбцы, к которым вы пытаетесь сузиться. Скажем «XFD1» для этого последнего столбца первой строки. Отсюда и число 16 000+.

Чтобы добраться до последней ячейки, содержащей непустое значение, вы можете нажать клавишу End, чтобы войти в «Режим завершения», а затем нажать Left Arrow, и это поместит активную ячейку для вашей электронной таблицы в столбец 15 или столбец «O» с адресом «O1».

Что такое эквивалентный C # API автоматизации для "End Mode"? Это функция Range.End. Вот описание:

и вот несколько примеров VBA функции End:

Excel не сильно изменился за эти годы, поэтому эти примеры VBA очень распространены и все еще весьма полезны, даже если вам нужно перевести синтаксис на C #.

Если вы можете сделать это в самом Excel, вы, вероятно, можете сделать это с помощью API автоматизации!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...