![]() |
![]() |
|
Как узнать сколько всего строк в на листе Excel? | ☑ | ||
---|---|---|---|---|
0
gar_den
18.11.10
✎
11:40
|
?
|
|||
1
Grusswelle
18.11.10
✎
11:41
|
65536
|
|||
2
Fragster
гуру
18.11.10
✎
11:42
|
Функция ТаблицаИзФайлаЭксель(ФайлИмпорта, ЕстьНазванияКолонок = Истина)
Таблица = Новый ТаблицаЗначений; Если ПустаяСтрока(ФайлИмпорта) Тогда Предупреждение("Не выбран файл"); Возврат Таблица; КонецЕсли; Попытка excel = Новый COMОбъект("excel.application"); workbook = excel.workbooks.open(ФайлИмпорта); Массив = workbook.activesheet.usedrange.value.Выгрузить(); workbook.close(); workbook = 0; // excel.quit(); excel = 0; ЧислоКолонок = Массив.ВГраница(); ЧислоСтрок = Массив.Получить(0).ВГраница(); Для СчКол = 0 По ЧислоКолонок Цикл Если ЕстьНазванияКолонок Тогда Попытка Таблица.Колонки.Добавить(Массив.Получить(СчКол).Получить(0)); Исключение Таблица.Колонки.Добавить("Кол"+Формат(СчКол,"ЧГ=0")); КонецПопытки; Иначе Таблица.Колонки.Добавить("Кол"+Формат(СчКол,"ЧГ=0")); КонецЕсли; КонецЦикла; Для СчСтрок = ?(ЕстьНазванияКолонок,1,0) По ЧислоСтрок Цикл ЕстьЗначение = Ложь; Для СчКол = 0 По ЧислоКолонок Цикл Если Не ПустаяСтрока(Массив[СчКол][СчСтрок]) Тогда ЕстьЗначение = Истина; Прервать; КонецЕсли; КонецЦикла; Если ЕстьЗначение Тогда Строка = Таблица.Добавить(); Для СчКол = 0 По ЧислоКолонок Цикл Строка[СчКол] = Массив[СчКол][СчСтрок]; КонецЦикла; КонецЕсли; КонецЦикла; Исключение Сообщить("Не получилось загрузить данные из EXCEL"); КонецПопытки; Возврат Таблица; КонецФункции |
|||
3
Fragster
гуру
18.11.10
✎
11:42
|
(1) а в 2007?
|
|||
4
dk
18.11.10
✎
11:43
|
v8: Как при открытии файла Excel установить активную ячейку?
v8: Как установить активный лист при открытии Excel v8: Как узнать сколько всего листов в книге Excel ни здрасте, ни спасибо, ни до свидания --- пора автору напомнить про хорошие манеры |
|||
5
Tatitutu
18.11.10
✎
11:44
|
ВсегоКолонок = Лист.Cells(1,1).SpecialCells(11).Column;
ВсегоСтрок = Лист.Cells(1,1).SpecialCells(11).Row; |
|||
6
mzelensky
18.11.10
✎
11:44
|
млжно вот так:
//ОБРАБАТЫВАЕМ ФАЙЛ НомерПервойСтроки=2; НомерПервойКолонки=1; ВсегоСтрок = Ех.Sheets(1).Cells.SpecialCells(11).Row; ВсегоКолонок = Ех.Sheets(1).Cells.SpecialCells(11).Column; ТЗ = Новый ТаблицаЗначений; Для Счетчик = 1 По ВсегоКолонок Цикл ТЗ.Колонки.Добавить("Колонка"+Счетчик, Новый ОписаниеТипов("Строка")); КонецЦикла; Для Счетчик = НомерПервойСтроки По ВсегоСтрок Цикл НоваяСтрока = ТЗ.Добавить(); КонецЦикла; Область = Ех.Sheets(1).Range(Ех.Sheets(1).Cells(НомерПервойСтроки,НомерПервойКолонки), Ех.Sheets(1).Cells(ВсегоСтрок,ВсегоКолонок)); Данные = Область.Value.Выгрузить(); Для Счетчик = 0 По ВсегоКолонок-1 Цикл ТЗ.ЗагрузитьКолонку(Данные[Счетчик], Счетчик); КонецЦикла; |
|||
7
mzelensky
18.11.10
✎
11:45
|
*5) +1 :)
|
|||
8
vartanet
18.11.10
✎
11:54
|
// открываем excel
Эксель = Новый COMОбъект("Excel.Application"); ЭксельЭтотОбъектКниги = Эксель.Workbooks; КнигаИзФайла = ЭксельЭтотОбъектКниги.Open(ЗагружаемыйФайл); // обработка ЛистИзФайла = КнигаИзФайла.Worksheets(3); МассивыИзЭксель = ЛистИзФайла.UsedRange.Value.Выгрузить(); Массив1 = МассивыИзЭксель[0]; Сообщить("Количества строк в excel: "+"Массив1.Количество()); // закрываем книгу КнигаИзФайла.Close(); |
|||
9
vartanet
18.11.10
✎
11:57
|
в моем случае вся страница excel целиком конвертируется в список массивов. и дальше работа с excel идет только средствами 1С - обычная работа с массивами. удобно, если нужно только вытащить данные из файла..
|
|||
10
gar_den
18.11.10
✎
12:26
|
ниодин из методов не работает
|
|||
11
chio2005
18.11.10
✎
12:33
|
Если ДиалогОткрытияФайла.Выбрать() Тогда
ПутьКФайлу = ДиалогОткрытияФайла.ПолноеИмяФайла; Иначе Возврат; КонецЕсли; // открываем экселовский файлик... Попытка Excel = Новый COMОбъект("Excel.Application"); Excel.WorkBooks.Open(ПутьКФайлу); Состояние("Обработка файла Microsoft Excel..."); ExcelЛист = Excel.Sheets(1); Исключение Сообщить("Ошибка открытия книги Excel."); Возврат; КонецПопытки; // открыли успешно, теперь обработка StartingRow = 15; // отсюда начинается описание свойств RowCount = ExcelЛист.UsedRange.Rows.Count; Для Row = StartingRow По RowCount Цикл // что-то там... КонецЦикла; |
|||
12
chio2005
18.11.10
✎
12:34
|
(11)+
т.е. RowCount = ExcelЛист.UsedRange.Rows.Count; у меня это работает 100% |
|||
13
vartanet
18.11.10
✎
12:49
|
кхм. у меня загрузка десятка прайсов разных контрагентов так устроена. прайсы самые разные по структуре. все работает.
МассивыИзЭксель = ЛистИзФайла.UsedRange.Value.Выгрузить(); МассивыИзЭксель[0].Количество(); |
|||
14
gar_den
18.11.10
✎
13:00
|
(12) от спасибо! от помог! точняк работает!)
|
|||
15
gar_den
18.11.10
✎
13:02
|
(14) + все остальные - аналог юнирепса, а там мой файл тоже не сработал) Там дофига группировок разных было и чего-то такого что из 2000 строк он подсчитывал только 80
|
|||
16
NcSteel
18.11.10
✎
13:03
|
(0) Запросом.
|
|||
17
NcSteel
18.11.10
✎
13:05
|
Select Count(*) From [листнужный$]
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |