|
Слетают рисунки в эксель | ☑ | ||
---|---|---|---|---|
0
Dolphinbet
27.08.15
✎
12:54
|
Сохраняю табличный документ с рисунком в эксель. Все нормально открываю - рисунок на месте. Далее такой код (на сервере):
excel = Новый COMОбъект("Excel.Application"); excel.DisplayAlerts = 0; excel.EnableEvents = 0; Книга = excel.WorkBooks.Open(ПутьКФайлуотчета); Книга.SaveAs(ПутьКФайлуотчета); excel.Application.Quit(); После этой операции при открытии файла там где должен быть рисунок надпись "Часть рисунка с идентификатором отношения rID1 не найдена в файле". Что могло случиться с рисунком при пересохранении файла? |
|||
1
фобка
27.08.15
✎
12:57
|
Формат файла может задать?
|
|||
2
Dolphinbet
27.08.15
✎
13:02
|
(1) Формат xlsx
|
|||
3
фобка
27.08.15
✎
13:04
|
Saveas(путь, 50);
|
|||
4
Dolphinbet
27.08.15
✎
13:04
|
Кстати вот тоже подобная проблема http://axforum.info/forums/showthread.php?t=34203
|
|||
5
Dolphinbet
27.08.15
✎
13:05
|
(3) Книга.SaveAs(ПутьКФайлуотчета, 50);
по причине: Произошла исключительная ситуация (Microsoft Excel): Данное расширение нельзя использовать с выбранным типом файла. Измените расширение в поле "Имя файла" или выберите другой тип файла в списке "Тип файла". |
|||
6
фобка
27.08.15
✎
13:11
|
(4) погодь
(5) да?) а так saveas(путь, -4143) еще надо параметр accsessmode глянуть типа Saveas(,-4143,,,,,2) |
|||
7
фобка
27.08.15
✎
13:15
|
50 - это эксель 2007 (xlExel12), у тебя какой?
|
|||
8
Dolphinbet
27.08.15
✎
13:16
|
(6) Теперь файл не открывается в эксель, пишет что формат недопустимый)
|
|||
9
Dolphinbet
27.08.15
✎
13:16
|
У меня вот такой:
ТабДок.Записать(ПутьКФайлуотчета, ТипФайлаТабличногоДокумента.XLSX); |
|||
10
фобка
27.08.15
✎
13:17
|
(9) это понятно, эксель какой?
|
|||
11
Dolphinbet
27.08.15
✎
13:27
|
(10) Excel 2010
|
|||
12
фобка
27.08.15
✎
13:36
|
(11) походу 51
|
|||
13
Dolphinbet
27.08.15
✎
13:40
|
(12) походу, только картинки по прежнему слетают..
|
|||
14
фобка
27.08.15
✎
13:44
|
(13) значит дело не в формате :)
|
|||
15
Dolphinbet
27.08.15
✎
13:49
|
(14) попробовал выполнить тот же код на клиенте - все норм. Значит дело в выполнении на сервере..
|
|||
16
Dolphinbet
27.08.15
✎
13:56
|
только вариант "на клиенте " мне не подходит(
|
|||
17
фобка
27.08.15
✎
14:05
|
Сложно сказать - не сталкивался. Если переимонвать файл в zip и посмотреть внутри - картинка существует?
|
|||
18
Dolphinbet
27.08.15
✎
14:12
|
Вообще некоторые советуют отказаться от использования "Excel.Application" (например корпорация Microsoft).
Соответственно у меня вопрос, какая есть альтернатива? ADO? |
|||
19
Dolphinbet
27.08.15
✎
14:13
|
Допустим у меня есть такой несложный код:
excel = Новый COMОбъект("Excel.Application"); excel.DisplayAlerts = 0; excel.EnableEvents = 0; Книга = excel.WorkBooks.Open(ПутьКотчету); List = Книга.Sheets(1); List.columns(6).Delete(-4159); List.Cells(14,6).Select(); excel.ActiveWindow.FreezePanes = 1; ВсегоКолонок = List.Cells(1,1).SpecialCells(11).Column; Для i=6 по ВсегоКолонок цикл List.columns(i).ColumnWidth = 100; List.columns(i).AutoFit(); КонецЦикла; ВсегоСтрок = List.Cells(1,1).SpecialCells(11).Row; Для i=1 по ВсегоСтрок цикл List.rows(i).AutoFit(); КонецЦикла; старт = List.columns(13); финиш = List.columns(ВсегоКолонок); List.Range(старт, финиш).Group(); Книга.SaveAs(ПутьКотчету); excel.Application.Quit(); Как сделать тоже самое через ADO? |
|||
20
Dolphinbet
27.08.15
✎
14:16
|
Корпорация Microsoft на сегодняшний день не рекомендует производить и не поддерживает автоматизацию программ из пакета Microsoft Office с помощью автоматических, неинтерактивных клиентских приложений или компонентов (включая ASP, DCOM и службы NT), поскольку при запуске в этом окружении программы пакета Office могут работать нестабильно или зависать.
|
|||
21
фобка
27.08.15
✎
14:36
|
(20) адо для чтения/записи данных ток (имхо), не знаю можно так форматами и свойствами управлять
|
|||
22
Dolphinbet
27.08.15
✎
14:43
|
Вот что пишет Майкрософт по поводу серверной автоматизации https://support.microsoft.com/ru-ru/kb/257757
|
|||
23
Dolphinbet
27.08.15
✎
14:44
|
Если честно я среди альтернатив ничего не нашел подходящего. Не встраивать в файл макрос чтоб он отрабатывал на стороне клиента. Вряд ли какому-то клиенту это понравится)
|
|||
24
Dolphinbet
27.08.15
✎
14:47
|
Намного лучшей скорости и масштабируемости при редактировании некоторых встроенных двоичных форматов можно достичь средствами Web-компонентов Office (OWC) или объектов данных ActiveX (ADO). Просмотр и изменение свойств документов возможны без применения автоматизации, а для управления файлами и версиями используются серверные расширения FrontPage (FPSE) или Distributed Authoring and Versioning (DAV).
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |