|
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) Вот жеж, юлин, ленивое поколение ЕГЭ то выросло.
Надо уметь оперировать источниками:
|
|