Редактирование Excel документа через new ActiveXObject('Excel.Application')
Привет.
TS 3.x
Есть документ Excel(.xls) открытый вот так:
var Excel = new ActiveXObject('Excel.Application'); Excel.Workbooks.Open(filePath);
У кого есть опыт работы, подскажите как:
1. Добавить пустой рядок в качестве 1-го(подвинув остальные вниз).
2. Заполнить ячейки этого рядка(припустим первых 10), интересует именно доступ.
3. Настроить ширину колонок.
*VS Debugger виснет при попытке взглянуть в объект.
**Нормальной документации не нашел, если у кого-то завалялась - буду благодарен
Нравится
Проще всего в Excel запустить запись макроса, проделать всё вышеупомянутое, а потом изучать сгенерированный код на VBA и переводить его на синтаксис JS.
Потыкал и нашел.
try { var excel = new ActiveXObject('Excel.Application'); var workBooks = excel.Workbooks.Open(TempFileName.Value); var excelSheet = workBooks.Worksheets(1); excelSheet.Activate(); excelSheet.Range('A1:K1').Insert(-4121); excelSheet.Range('A1').Formula = 'Ячейка А1'; excelSheet.Range('B1').Formula = 'Ячейка А2 '; // ...... excelSheet.Range('K1').Formula = 'Ячейка К1'; excelSheet.Columns('A:K').AutoFit(); workBooks.Save(); } finally { excelSheet = System.EmptyValue; workBooks = System.EmptyValue; excel.Quit(); excel = System.EmptyValue; CollectGarbage(); }
1.Добавление пустого рядка было сделано через Insert со смещением вниз.
2. Заполнение через метод Formula об. Range
3. Использовал AutoFit так как изменять значения Width или ColumnWidth не давало(read-only).
*Ещё обратите внимание на блок finally при таких действиях процесс excel.exe который был создан убивается.