Редактирование 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 который был создан убивается.