Удалить пустые строки в таблице

Автор NewUser, 10 марта 2023, 09:21

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

NewUser

Здравствуйте. При копировании таблиц с веб-страницы в Writer появляются пустые строки таблиц. Подскажите, пожалуйста, как в таблице разом удалить все пустые строки. Спасибо.

economist

Отсортировать, выделить пустые, удалить их, восстановить сортировку.

Если нет "ключа" для восстановления сортировки - сделать все то же самое в Calc, где ключ можно сделать самому (1,2,3 итд). В Calc вы можете включить сортировку (Автофильтр, Расширенный фильтр) и автоматом убрать пустоты, дубликаты, "мелкие" или "левые" значения/строки.

Вставить уже "чистую" таблицу Calc во Writer можно несколькими способами, включая "связь" DDE, которая обновляется автоматически.

В идеале в Calc делается связь с вебстраницей, а во Writer - связь с ODS-файлом Calc (включите в Windows отображение расширений файлов). И тогда чтобы получить обновленную таблицу во Writer без пустых строк нужно всего-лишь:
- открыть файл в Calc и убедиться что веб сайт не "лежит" и отдал таблицу, а не 401-404 ошибку, закрыть+сохранить
- открыть файл во Writer и согласиться с обновлением связей. Убедиться что все Ок. Цель достигнута.

Что может пойти не так? - Короткий ответ: Всё. Веб-мастера/SEO-спецы борются за посещение сайта (от этого зависит их доход) и намеренно вредят: мешают работе роботов и скриптов. Часто они меняют колонки, форматы, меняют ПО и "движки" для сайта - короче, условно "раз в квартал" все будет полностью ломаться не по вашей вине. Но исправлять - вам. Эта борьба нескончаема.

Снизить накал борьбы и полностью автоматизировать импорт табл. web-данных во Writer, который будет ломаться гораздо реже, условно "раз в 2 года" - можно на языке Python с библиотекой Pandas (это признанные лидеры для парсинга сайтов). В них легко реализовать авто-исправление основных "шалостей" сайта и сбор исторических данных в компактный архив. Примеры есть на Форуме.
Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...

McAaron

Вариант, который работает обычно хорошо:
1) выделяем таблицу и копируем в буфер обмена;
2) вставляем буфер обмена в документ без сохранения форматирования (содержимое столбцов будет отделено друг от друга символами табуляции);
3) выделяем вставленное и перобразуем текст в таблицу (Таблица-> Преобразовать-> Текст в таблицу);
4) форматируем и декорируем результат по вкусу.

Вообще, все, что копипастится не из своих собственных .odt, где вы не контролируете стили, копипасту следует вставлять в документ всегда без форматирования. Иначе вы вместе с текстом импортируете все чужие стили и, как минимум, получите в документе стилевую помойку. А, как максимум, потратите еще и кучу времени на разгребание стилевой разножопицы.


McAaron

Цитата: economist от 13 марта 2023, 08:34Отсортировать, выделить пустые, удалить их, восстановить сортировку.

Если нет "ключа" для восстановления сортировки - сделать все то же самое в Calc, где ключ можно сделать самому (1,2,3 итд). В Calc вы можете включить сортировку (Автофильтр, Расширенный фильтр) и автоматом убрать пустоты, дубликаты, "мелкие" или "левые" значения/строки.

Вставить уже "чистую" таблицу Calc во Writer можно несколькими способами, включая "связь" DDE, которая обновляется автоматически.
DDE -- это пережиток убогого прошлого тридцатилетней давности.
Прежде всего, вставленное таким образом всегда выглядит блевотно, при этом привести вставленное к стилю никогда не удается.
Во вторых, эта самая "связь" по закону паркинсона в самый важный момент будет отсутствовать. Но еще хуже, если она внезапно обновится тогда, когда вам это совершенно не нужно.
По этой же причине следует всегда вставлять картинки и прочие объекты, а не ссылки на них. Затраты времени и нервов на копирование, вставку без форматирования и последующее форматирование по факту всегда меньше, чем использование DDE и прочих аналогов.
Эти древние возможности ссылаться на другие файлы ничего кроме геморроя, особенно в конце отчетного периода, в работу не привносят.


eeigor

Цитата: McAaron от 17 марта 2023, 16:48Вариант, который работает обычно хорошо:
Я взял таблицу отсюда:
Свойства диаграммы: Общие
https://help.qlik.com/ru-RU/qlikview/May2022/Subsystems/Client/Content/QV_QlikView/Straight_Table.htm

@McAaron, попробуйте преобразовать текст в таблицу по табуляторам. У меня много ошибок: ячейки встают не туда.
Вероятно, из-за нескольких символов абзаца в тексте ячейки. Возможно, было бы лучше, если их заменить на символ перевода строки.
Ubuntu 18.04 LTS • LibreOffice 7.5.1.2 Community

eeigor

Вот пример данных по ссылке выше:
Ubuntu 18.04 LTS • LibreOffice 7.5.1.2 Community

economist

#6
Цитата: McAaron от 17 марта 2023, 17:13DDE -- это пережиток убогого прошлого тридцатилетней давности. ... при этом привести вставленное к стилю никогда не удается.

Языку SQL, MIDI еще куче промышленных стандартов - уже 40 лет. Это не пережиток, просто на столько лет эти технологии опередили свое время и предопределили тех прогресс. DDE не так велик, но без него в корп. среде OpenOffice|LibreOffice не стал бы тем, кем стал.   

DDE-таблица во Writer всегда подчиняется одному стилю (да, слишком простому, годится для спецификаций, приложений к договорам итп текстовому). Насчет "проще вставить заново" я бы посопорил. Когда раз тридцать за день перевставишь руками в контракт спеку листов на 20 - навсегда полюбишь DDE. Он решает проблему пересчета: в Calc меняем суммы/формулы, Ctrl+S, во Writer - Файл-Перезагрузить. В моих шаблонах DDE-связи работают с 2009 г. и отваливались раз с каким-то обновлением, даже не помню с OO или LO. Но это такая мелочь, сломаться раз в 25 лет...

Итак, DDE-таблица из Calc во Writer - быстра и ведет себя довольно умно:
- может быть огромной, на тысячи страниц
- построчно, без разрывов текста ячеек, переносится на следующий лист
- может дублировать на каждой странице сквозные строки из "шапки"
- позволяет "слегка" себя форматировать (обновление DDE - не испортит простое ручное Writer-форматирование, но удаленные буквы - восстановит)
- DDE-обновление в разных версиях OpenOffice|LibreOffice рамсило, но ни разу не подвело

DDE-связь с Calc таблицей нужно разрывать, если файлы "разлучают" (как и в Excel).
DDE-связи не стоит создавать с файлом с пробелами в имени. В одной ТНК своими глазами видел внутренний стандарт на DDE, там вязали к "сухому" имени файла (симлинку к *.ods) Одним словом, проблемы решаемы и технология востребована, заменить ее (и встроенный механизм связей LibreOffice) - нечем.
Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...

McAaron

Цитата: eeigor от 17 марта 2023, 17:55
Цитата: McAaron от 17 марта 2023, 16:48Вариант, который работает обычно хорошо:
Я взял таблицу отсюда:
Свойства диаграммы: Общие
https://help.qlik.com/ru-RU/qlikview/May2022/Subsystems/Client/Content/QV_QlikView/Straight_Table.htm

@McAaron, попробуйте преобразовать текст в таблицу по табуляторам. У меня много ошибок: ячейки встают не туда.
Потратил несколько минут на удаление лишних концов абзаца и все нормально преобразовалось. Ваша таблица двухколоночная, соответственно, по одному табулятору и концу абзаца на строку.


McAaron

Цитата: economist от 17 марта 2023, 23:57
Цитата: McAaron от 17 марта 2023, 17:13DDE -- это пережиток убогого прошлого тридцатилетней давности. ... при этом привести вставленное к стилю никогда не удается.

Языку SQL, MIDI еще куче промышленных стандартов - уже 40 лет. Это не пережиток, просто на столько лет эти технологии опередили свое время и предопределили тех прогресс.
DDE не так велик, но без него в корп. среде OpenOffice|LibreOffice не стал бы тем, кем стал.   
Я с DDE и OLE имел дело еще в 90-х как пользователь мсвордов, офисов и прочих лотуснотесов. В случае расшаренных документов, компоненты которых редактируются разными пользователями, это уже кошмар. А реальный ад наступает, когда у заказчика, к которому ты ехал на поезде двое суток, что-то не так оказалось настроено или вообще что-то там другого типа... Более-менее работало это только в однородной среде Lotus, поэтому возили всегда с собой компакт с их офисом. Одним словом, хлебнули в свое время коричневенького.