Имя: Пароль:
1C
 
Программно вставить HTML в табличный документ
,
0 TormozIT
 
гуру
24.07.22
20:48
Если скопировать в буфер обмена любую HTML страницу, выделить в табличном документе 1С первую ячейку и вставить из буфера, то текст HTML страницы и главное ее таблицы неплохо располагаются в табличном документе.
Хочу сделать это же программно.
Например тут много таблиц https://en.wikipedia.org/wiki/Dow_Jones_Industrial_Average
1 ДедМорроз
 
24.07.22
21:11
Так там не html вставляется,а форматмрованный документ.
2 TormozIT
 
гуру
24.07.22
21:13
(1) Ну называй как хочешь. В Excel кстати работает аналогично, но там и из файла html можно загружать (импортировать).
3 ДедМорроз
 
24.07.22
21:15
На скмом деле,можно в буфер обмена rtf записать и вставить из буфера.
Почти все приложения rtf умеют вставлять.
4 ДедМорроз
 
24.07.22
21:17
Можно попробовать результат сериализовать и посмотреть,восстановится ли он обратно.
5 Кура-Цеце
 
24.07.22
21:26
Если всё по честному и только на 1С, то html -> xml -> zip -> xlsx -> Табличный документ -> Вставить.
Если химичить, то внешняя компонента, которая кладет в буфер обмена данные в нужном формате и вставляет. Ну ты ж клипангел писал, в курсе.
6 ДедМорроз
 
24.07.22
21:40
Табличный документ сериализуется.
7 Кура-Цеце
 
24.07.22
21:46
Во что?
8 Кура-Цеце
 
24.07.22
21:48
О, точно, его в {http://v8.1c.ru/8.2/data/spreadsheet}SpreadsheetDocument можно.
А дальше как? (:
9 Кура-Цеце
 
24.07.22
21:49
Имитировать вставку через исправление XML?
10 Кура-Цеце
 
24.07.22
21:58
Или html -> xml -> Табличный документ -> Вставить ?
11 ДедМорроз
 
24.07.22
22:03
В xml можно вставить что угодно,а потом обратно десериализовать
12 TormozIT
 
гуру
24.07.22
22:59
Получилось через COM EXCEL так
ИмяФайла = "C:\TerminalDisk\example.html";
ИмяФайлаТаблицы = ПолучитьИмяВременногоФайла("xls");
Эксель = Новый COMОбъект("Excel.Application");
Книга = Эксель.WorkBooks.Open(ИмяФайла);
Книга.SaveAs(ИмяФайлаТаблицы, 56);
Книга.Close();
Эксель.Quit();
ТабличныйДокумент = Новый ТабличныйДокумент;
ТабличныйДокумент.Прочитать(ИмяФайлаТаблицы);
13 TormozIT
 
гуру
26.07.22
07:56
(12) Не всегда работал. Переделал на более всеядный xlsx
ИмяФайла = "C:\TerminalDisk\example.html";
ИмяФайлаТаблицы = ПолучитьИмяВременногоФайла("xlsx");
Эксель = Новый COMОбъект("Excel.Application");
Книга = Эксель.WorkBooks.Open(ИмяФайла);
Книга.SaveAs(ИмяФайлаТаблицы, 51);
Книга.Close();
Эксель.Quit();
ТабличныйДокумент = Новый ТабличныйДокумент;
ТабличныйДокумент.Прочитать(ИмяФайлаТаблицы);
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс