скопировать данные таблицы из Calc в таблицу Writer без потери форматирования

Автор timal1234, 12 декабря 2025, 15:19

0 Пользователи и 2 гостей просматривают эту тему.

timal1234

Всем привет.

Не знаю в какой раздел поместить тему... поэтому тут.

Задача : скопировать данные таблицы из Calc в таблицу Writer без потери форматирования (в особенности верхний индекс).

Описание проблемы:
Надо заполнить Перечень элементов "ПЭ4_v.2.odt": с рамкой и основной надписью (в колонтитулах) по ГОСТ 2.104 и таблицей самого перечня (по ГОСТ 2.701).
Данные для этого перечня находятся на листе "ПЭ4" в файле Calc "ПЭ4_v.2.ods"... на самом деле в исходном файле много вкладок и макросы (в "ПЭ4_v.2.ods" я их вырезал).

1) Если вставлять из Calc только данные (без шапки) в табицу Writer (заранее очищенную) через CTRL+V , то верхний индекс теряется (см. л. 1-3 "ПЭ4_v.2.odt") и все столбцы заполняются шрифтом высотой 12пт, хотя в столбце Примечание в Calc был 11пт.

2) Если вставлять через SHIFT+CTRL+V как "Электронная таблица LibreOffice" не в таблицу, а в текст, то верхний индекс не теряется, но таблица не переносится на следующий лист (см. л.4 "ПЭ4_v.2.odt").
(пробовал в LibreOffice portable v.24.8.7.2 и v.25.2.3.2)

можно это как-то побороть?

economist

На следующий лист разрываются и переносятся, дублируют заголовки и принимают стили таблиц лишь "обычные" и "связанные" таблицы, DDE, HTML (но они теряют верхн индекс, т.к передают только текст/цифры).

Не рвутся/не переносятся OLE и внедренные табл., они ужасны в верстке, поэтому они д.б. на пол-страницы (но зато сохр. верхн индекс и вообще всю радугу форматов). Так что на первый взгляд задача решения не имеет. Вывод: не надо было имитировать сноски в табл. процессоре, это поле игры для текстового процессора Writer.

В. индекс во Writer после вставки из Calc можно восстановить макросом, но для этого он должен знать где его поднимать. Кмк проще согласиться со сносками без верх регистра. И есть гиперссылки как еще более правильный вар-т, который будет работать и в PDF.
     
Пить не буду коньяка - читану Питоньяка!

sokol92

Цитата: timal1234 от 12 декабря 2025, 15:19все столбцы заполняются шрифтом высотой 12пт
У меня тоже так. Баг?
Цитата: timal1234 от 12 декабря 2025, 15:19верхний индекс теряется
Это теряется внутреннее форматирование ячеек (для тех ячеек, где оно есть).

Можно написать макрос, который сканирует такие ячейки электронной таблицы и каждую отдельно копирует в текстовую таблицу с сохранением форматирования.

(Недели через 2 могу заняться, если будет актуально к тому времени).
Владимир.

timal1234

Цитата: economist от 12 декабря 2025, 16:56В. индекс во Writer после вставки из Calc можно восстановить макросом, но для этого он должен знать где его поднимать.
я об этом уже задумался....
Цитата: economist от 12 декабря 2025, 16:56Кмк проще согласиться со сносками без верх регистра.
ГОСТ с этим не согласен :-))
искал альтернативу, чтоб удовлетворяла ГОСТу, но не нашёл...
Цитата: economist от 12 декабря 2025, 16:56Вывод: не надо было имитировать сноски в табл. процессоре,
это я вручную проставил верхние индексы в Calc, как должно быть по ГОСТу.... мой макрос (который заполняет данные для ПЭ4) ещё так не умеет  ;D 
при заполнении макросом там (в таблице Calc) примечания без верхних индексов...
Цитата: economist от 12 декабря 2025, 16:56И есть гиперссылки как еще более правильный вар-т, который будет работать и в PDF.
а это как?

timal1234

Цитата: sokol92 от 12 декабря 2025, 17:33У меня тоже так. Баг?
у меня так было ещё с версии 7.6.2.1.
Цитата: sokol92 от 12 декабря 2025, 17:33Можно написать макрос, который сканирует такие ячейки электронной таблицы и каждую отдельно копирует в текстовую таблицу с сохранением форматирования.

(Недели через 2 могу заняться, если будет актуально к тому времени).
да, будет очень актуально...

timal1234

Цитата: timal1234 от 12 декабря 2025, 19:11мой макрос (который заполняет данные для ПЭ4) ещё так не умеет  ;D 
при заполнении макросом там (в таблице Calc) примечания без верхних индексов...
вообще после макроса источник выглядит так (см.вложение), но это не по ГОСТу...  там ещё есть дополнительный столбец с номерами сносок (для проверки)....
может как-то проще можно сделать, чтоб превратить номера дополнительных примечаний в сноски в конечном файле Writer ?
у меня только 2 идеи:
- как-то особо отметить номера сносок в Calc, а потом после вставки во Writer макросом их перевести в верхний индекс (пока ещё не знаю как  ;D ).
- доработать свой макрос, чтоб дополнительные примечания стали сносками, и опять же после вставки во Writer макросом их перевести в верхний индекс.

economist

ГОСТ не догма и точно не определяет где текст сноски можно не оформлять сноской. А гиперссылка на что-то большое - в doc/odt/pdf функциональна и удобна, клик по ней ведёт куда надо. Лучше бы в гост запретили pdf без гиперссылок в оглавлении.
Пить не буду коньяка - читану Питоньяка!

timal1234

Цитата: economist от 12 декабря 2025, 20:16ГОСТ не догма
вот здрасьте....
Цитата: economist от 12 декабря 2025, 20:16и точно не определяет где текст сноски можно не оформлять сноской.
предложите свой вариант, для моего случая...
однако, сколько я перерыл ГОСТов (по ЕСКД), и по ним только сноска (по-моему)  подходит для моего случая, т.к. применяется к конкретной ячейке, а не к таблице в целом (как примечания).
а в ГОСТе чётко сказано, что сноска (её номер) пишется в верхнем регистре.

timal1234

А предыстория такова:
Присылают состав оборудования, где наименования и примечания занимают по одной ячейке....
Для перечня элементов и спецификации надо их вписывать в бланк с ограниченной шириной столбцов... и если не поместилось в одну строчку, надо вручную вырезать и вставлять на следующую строку.
Надоело мне это...
И я создал базу в Calc с макросами, чтоб переносилось в следующую строку, если не помещается ....
Спросите, почему в Calc?
а потому, что из этого же файла приходится делать кабельный журнал в nanoCad (чертёж в формате dwg).... а он отлично понимает Calc....

Да, думал может уже пора создать файл базы данных,  но я с ними мягко говоря не дружу,..

в принципе, могу выложить оригинал файла источника с макросами...если надо

mikekaganski

Цитата: timal1234 от 12 декабря 2025, 20:26
Цитата: economist от 12 декабря 2025, 20:16ГОСТ не догма
вот здрасьте....

ГОСТы имеют рекомендательный статус. Но они становятся обязательными, если в договоре это указано.
С уважением,
Михаил Каганский

mikekaganski

Цитата: sokol92 от 12 декабря 2025, 17:33Можно написать макрос, который сканирует такие ячейки электронной таблицы и каждую отдельно копирует в текстовую таблицу с сохранением форматирования.
На всякий случай (текст выше, кажется, говорит именно об этом, но "сканирование каждой ячейки" несколько сбивает с толку).

При копировании одной ячейки в буфер мы сохраняем (некоторое) форматирование текста в ячейках (в формате RTF). Поэтому при копировании D10 можно вставить с сохранением красного цвета и верхнего индекса (правда, уменьшение шрифта теряется).

А вот если выделено несколько ячеек, то используется другой код, и форматирование внутри ячеек игнорируется.

Поэтому в теории можно было бы переносить в макросе просто путём копирования-вставки (а точнее, с использованием Transferable) по одной ячейке.

Цитата: sokol92 от 12 декабря 2025, 17:33У меня тоже так. Баг?

Я бы сказал, что потеря форматирования в ячейках - это баг.
С уважением,
Михаил Каганский

sokol92

Цитата: mikekaganski от 13 декабря 2025, 11:49Поэтому при копировании D10 можно вставить с сохранением красного цвета и верхнего индекса (правда, уменьшение шрифта теряется).
Да, .uno:ClipboardFormatItems c параметром 10.  :)

Цитата: mikekaganski от 13 декабря 2025, 11:49можно было бы переносить в макросе просто путём копирования-вставки (а точнее, с использованием Transferable) по одной ячейке.
Я собирался(юсь) скопировать таблицу целиком, а затем определить ("сканировать") список ячеек, у которых есть внутреннее форматирование, и скопировать их по одной (обычно, таких ячеек относительно немного). Дополнительно, пока не исправлен не сообщенный (?) баг, можно поправить и искаженные шрифты.

Владимир.

timal1234

Цитата: sokol92 от 13 декабря 2025, 14:16(обычно, таких ячеек относительно немного)

Сноски теоретически могут быть для каждой позиции перечня в столбце Примечание....а позиций может быть тоже не мало.... конечно это не все ячейки таблицы, но всё же... Для информации  ;D

timal1234

Цитироватьэто я вручную проставил верхние индексы в Calc,

Цитата: timal1234 от 12 декабря 2025, 19:11при заполнении макросом там (в таблице Calc) примечания без верхних индексов...
А вообще, перевести в верхний индекс часть текста ячейки в Calc - реально сделать макросом?
Ну или перевести в верхний индекс одну ячейку целиком, а потом склеить с другой, не потеряв верхний индекс?

economist

Есть несколько простых способов сносок и ссылок на источники, включая (1) [2] {3} скобки, и в каком то из гостов это даже написано. Выбирать самый сложный - наша нацидея, верх. индексами пренебрегает даже ЦБ и Росстат. Макрос не будет простым.
Пить не буду коньяка - читану Питоньяка!