табдок=новый табличныйДокумент;
Отказ = Ложь;
//Открываем эксель файл
Попытка
Эксель = Новый COMОбъект("Excel.Application") ;
Книга = Эксель.WorkBooks.Open(Файл);
Исключение
Сообщить(ОписаниеОшибки());
Возврат;
КонецПопытки;
Лист = Книга.WorkSheets(НазваниеЛиста);
**************
*************
ТабДок.Записать(книга,ТипФайлаТабличногоДокумента.XLSX);
Книга.Save();
Книга.Close();
Эксель.Quit();
ПоказатьЕсли делаю ТабДок.Показать(); то все показывает, результат выводится. А в Excel не выводится
По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Сначала ТабДок.Записать, потом Эксель = Новый COMОбъект("Excel.Application"); Книга = Эксель.WorkBooks.Open(Файл);
в конце Excel.ActiveWorkbook.Save(); // если менялось что-то программно в экселе и
Правда, переключить фокус на эксель будет проблемой. Знаю, как это сделать внешней консольной утилитой cmdow, но проще объяснить пользователю када тыкать мышем.
в конце Excel.ActiveWorkbook.Save(); // если менялось что-то программно в экселе и
Excel.Visible = 1; // показать окно экселя
Если вместо ТабДок.Записать поставить временно ТабДок.Показать - выйдет пустая таблица?
Вот как у меня:
Есть ещё подводный камень - если вместо Excel.ActiveWorkbook.Save() сделать второй раз ДокументРезультат.Записать, то документ перезапишется и все изменения пропадут.
Последовательность действий - сначала ТабличныйДокумент.Записать(ПолноеИмяФайла, ТипФайлаТабличногоДокумента.XLSX), затем Эксель.Open, затем, если нужно, действия в экселе, затем Excel.ActiveWorkbook.Save; Excel.Visible = 1;
Вот как у меня:
Состояние("Сохранение промежуточного файла...");
ПолноеИмяФайла = ПолучитьИмяВременногоФайла("xlsx");
// ДокументРезультат - окончательно сформированный табличный документ
ДокументРезультат.Записать(ПолноеИмяФайла, ТипФайлаТабличногоДокумента.XLSX);
Excel = Новый COMОбъект("Excel.Application");
Excel.WorkBooks.Open(ПолноеИмяФайла);
Excel.Visible = 0;
Excel.ActiveWindow.DisplayWorkbookTabs = 1;
Excel.ActiveWindow.TabRatio = 0.6;
// работа с экселевскими методами
// Состояние("Обработка данных...");
Excel.ActiveWorkbook.Save();
Excel.Visible = 1;
Excel = Неопределено;
Состояние("Готово.");
ПоказатьЕсть ещё подводный камень - если вместо Excel.ActiveWorkbook.Save() сделать второй раз ДокументРезультат.Записать, то документ перезапишется и все изменения пропадут.
Последовательность действий - сначала ТабличныйДокумент.Записать(ПолноеИмяФайла, ТипФайлаТабличногоДокумента.XLSX), затем Эксель.Open, затем, если нужно, действия в экселе, затем Excel.ActiveWorkbook.Save; Excel.Visible = 1;
(27) Светлана_23, ну е-мае!!!
открываем файл в екселе
и пытаемся ХЗ каким-то извращенным способом записать
писал же сделайте без всякого екселя, просто:
Процедура КнопкаВыполнитьНажатие(Кнопка)
табдок=новый табличныйДокумент;
Отказ = Ложь;
Попытка
Эксель = Новый COMОбъект("Excel.Application") ;
Книга = Эксель.WorkBooks.Open(Файл);
Исключение
Сообщить(ОписаниеОшибки());
Возврат;
КонецПопытки;
Показатьоткрываем файл в екселе
ТабДок.Записать(книга ,ТипФайлаТабличногоДокумента.XLSX);
Книга.Save();
Книга.Close();
и пытаемся ХЗ каким-то извращенным способом записать
писал же сделайте без всякого екселя, просто:
лФайл = "D:\000\1.xlsx"; //создайте сами под своим пользователем папку "000" на диске Д, чтоб точно доступна была
ТабДок = Новый ТабличныйДокумент;
ТабДок.Область(1,1).Текст = "Проверка";
ТабДок.Записать(Файл, ТипФайлаТабличногоДокумента.XLSX);
Отказ = Ложь;
Попытка
Эксель = Новый COMОбъект("Excel.Application") ;
Книга = Эксель.WorkBooks.Open(Файл);
Исключение
Сообщить(ОписаниеОшибки());
Возврат;
КонецПопытки;
Лист = Книга.WorkSheets(НазваниеЛиста);
Лист. Cells(1,1).Value = ОбластьЗаголовок.Параметры.начдата;
Книга.Save();
Книга.Close();
Показатьа вот так отрабатывает. может дело в табдок?
табдок=новый табличныйДокумент;
Отказ = Ложь;
Попытка
Эксель = Новый COMОбъект("Excel.Application") ;
Книга = Эксель.WorkBooks.Open(Файл);
Исключение
Сообщить(ОписаниеОшибки());
Возврат;
КонецПопытки;
Показатьубрала я все это и заработало
Для 8.1, 8.2 можно выкрутиться, сохраняя в xls, затем пересохраняя средствами экселя в xlsx
В моём случае файл пересохраняется со временным именем + "x".
Состояние("Сохранение промежуточного файла...");
ПолноеИмяФайла = ПолучитьИмяВременногоФайла("xls");
ДокументРезультат.Записать(ПолноеИмяФайла, ТипФайлаТабличногоДокумента.XLS);
Excel = Новый COMОбъект("Excel.Application");
Excel.WorkBooks.Open(ПолноеИмяФайла);
Excel.Visible = 0;
Excel.ActiveWindow.DisplayWorkbookTabs = 1;
Excel.ActiveWindow.TabRatio = 0.6;
FullName = Excel.ActiveWorkbook.FullName;
Excel.DisplayAlerts = false;
Excel.ActiveWorkbook.SaveAs(FullName+"x", 51);
ПоказатьВ моём случае файл пересохраняется со временным именем + "x".
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот