|
v7: Найти имя/имена листов экселя | ☑ | ||
|---|---|---|---|---|
|
0
Лалым
05.10.15
✎
21:45
|
Есть файл экселя от разных поставщиков, необходимо дописать в каждый файл пару строк. проблема в том что листы имеют разные имена, у каждого поставщика свое имя листа.
Можно ли получить имя листа из открытой книги, если можно то пример кода |
|||
|
1
vde69
05.10.15
✎
21:51
|
||||
|
2
abibas
05.10.15
✎
21:59
|
Если excel не установлен:
DB = Новый COMОбъект("ADODB.Connection"); Str = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+ФайлXLS+";Extended Properties=""Excel 8.0;HDR=NO;;IMEX=1;"""; DB.ConnectionString = Str; DB.Open(); DB.CursorLocation = 3; axCatalog = Новый COMОбъект("ADOX.Catalog"); axCatalog.ActiveConnection = DB; спЛисты = Новый СписокЗначений; Для Каждого Лист ИЗ axCatalog.Tables Цикл ИмяЛиста = Лист.Name; спЛисты.Добавить(ИмяЛиста); КонецЦикла; ИмяЛиста = спЛисты.ВыбратьЭлемент(); |
|||
|
3
Лалым
05.10.15
✎
22:01
|
(1) Клюшки (2) Ексель установлен
|
|||
|
4
abibas
05.10.15
✎
22:02
|
Тогда (1) проще переделать. Недосмотрел про 7.7.
|
|||
|
5
abibas
05.10.15
✎
22:17
|
Как-то так
ИмяФайла = "e:\Docs\бюджет.xls"; BaseOLE = СоздатьОбъект("Excel.Application"); Файл = BaseOLE.WorkBooks.Open(ИмяФайла); КоличествоЛистов = Файл.Sheets.Count; Сп = СоздатьОбъект("СписокЗначений"); Для е = 1 по КоличествоЛистов Цикл Сп.ДобавитьЗначение(Файл.Sheets(е).name); КонецЦикла; Сп.ВыбратьЗначение(1); Файл .Close(); BaseOLE = ""; |
|||
|
6
Лалым
05.10.15
✎
22:18
|
(4) Количество листов определляется нормально
можно ли обратиться к листу по его номеру как к имени Лист=Книга.WorkSheets("Venta"); ? |
|||
|
7
HawkEye
05.10.15
✎
22:48
|
(6) да
|
|||
|
8
SiAl-chel
06.10.15
✎
06:54
|
(6) Вот жеж, юлин, ленивое поколение ЕГЭ то выросло.
Надо уметь оперировать источниками: https://msdn.microsoft.com/en-us/library/office/ff822101.aspx |
| Форум | Правила | Описание | Секции | Поиск |