<lo-ru-tg>
<Eugene> Ну вот отсюда и непонятно - он все 32 Кб в ячейку загрузил или где-нибудь обрезал?
<lo-ru-tg>
<Илья> Видимо, нужно попробовать найти в csv файле строки длиннее чем ограничение для ячейки и в них выбрать ячейку имеющую слишком большую длину. Я к сожалению не могу открыть файл. У меня сейчас rar нечем открыть.
<lo-ru-tg>
<Eugene> Проблемный столбец, скорее всего - DESCR_CONTENTS.
<lo-ru-tg>
<Eugene> Применяя на весь столбец фильтр, я не вижу ни одного "(empty)", то есть скорее всего LO не дописывает данные в ячейки. Узнать бы в какие именно.
<lo-ru-tg>
<Eugene> Хм... DESCR_CONTENTS имеет длину 3097 байт или меньше.
<lo-ru-tg>
<Eugene> Нашел такую багу - если скопировать результат формулы и вставить как "Past Special - Text" - в результате получается пустое поле. Если вставить как "Past Special - Number" или "Past Special - Unformatted text" - вставляется значение.
<lo-ru-tg>
<Илья> Похоже что привышение в ячейке 2-го столбца
<lo-ru-tg>
<Илья> строку пока не определил
<lo-ru-tg>
<Илья> строка 61046
<lo-ru-tg>
<Eugene> Странно, в файле всего 11 755 строк.
<lo-ru-tg>
<Eugene> Вообще, документ доволно интересный попался - там глюки Calc вылазят каждые пару минут.
<lo-ru-tg>
<Eugene> Например, некоторые столбцы имеют очень маленькую ширину при открытии.
<lo-ru-tg>
<Eugene> Или вот - пытаюсь вставить пустой столбец. Ждать нужно три минуты. И это в системе где свободно еще 20 гигабайт оперативки.
<lo-ru-tg>
<Илья> Столбец точно правильно определил, но, возможно есть другие
JohnDoe_71Rus has joined #libreoffice-ru
<lo-ru-tg>
<Eugene> Это какой-то адок работать с большими документами. Вставка столбца - 3 минуты, вычисление простейшей формулы C3=LEN(B3) для 12 тысяч строк - уже минут 15 прошло и я даже не знаю сколько он еще считать собирается...
<JohnDoe_71Rus>
LO не база данных.
<lo-ru-tg>
<Eugene> Так я и не использую его как базу данных. Мне надо просто CSV сохранить в XLSX. 12 тысяч строк - это вообще не проблема для электронной таблицы.
<lo-ru-tg>
<Eugene> Илья второй столбец (FullPkgPath) имеет значения от 6 до 58 байт. Вряд ли там есть записи, которые превышают 32 Кб.
<lo-ru-tg>
<Илья> Там разделителем табуляция является, или что-то другое?
<lo-ru-tg>
<Eugene> Только табуляция
<lo-ru-tg>
<Kompilainenn> А был файл тут выложен да?
<lo-ru-tg>
<Eugene> Чуть выше, на dropmefiles
<JohnDoe_71Rus>
12 тыс строк и по 32 Кб в ячейке... это явно не для табличного процессора
<lo-ru-tg>
<Eugene> Конечная цель - сконвертировать CSV файл в XLSX без потерь, чтобы эту таблицу можно было импортировать в базу данных Oracle. Я уже почти всё перенёс, осталась только эта одна.
<JohnDoe_71Rus>
а может быть так что в тексте для ячейки в csv попадается какой то служебный символ и криво обрабатывается
<lo-ru-tg>
<Eugene> Это нормально, я на работе таблицы и по 30 тысяч и по 500 тысяч строк обрабатываю.
<lo-ru-tg>
<Eugene> Конкретно в этих данных надо выяснить что именно Calc с ними делает - обрезает запись полностью или недописывает и главное - где именно.
<JohnDoe_71Rus>
вариант порезать исходный csv на кусочки помельче и посмотреть может какой кусок конкретно сбоит. в нем искать
<lo-ru-tg>
<Eugene> А пока решаю эту задачу, другие косяки вылезают. Добавление пустой ячейки в таблицу при незагруженной системе должно занимать не более 5-10 секунд.
<lo-ru-tg>
<Eugene> [EDIT] А пока решаю эту задачу, другие косяки вылезают. Добавление пустой колонки в таблицу при незагруженной системе должно занимать не более 5-10 секунд.
<lo-ru-tg>
<Eugene> Если честно, я бы ограничил "максимально число строк 1 048 576" и "Максимальное число столбцов 1 024", если программа уже начиет кряхтеть при 11 тысячах строках и 60 столбцах.
<lo-ru-tg>
<economist> С такой памятью нужно читать csv в python+pandas, чистить типы там и пересохранять в ods/xls/pkl. Займёт секунды-минуту от силы.
<lo-ru-tg>
<Eugene> Я так понял, чтобы вставить пустой столбец в таблицу, мне надо использовать pandas?
<lo-ru-tg>
<economist> Да, если таблица огромна и требует чистки.И делать все это нужно в jupyterlab, т.к. в нем работать по-шагам с большими данными настолько удобно, что калки покажутся наручниками.
<lo-ru-tg>
<economist> от в этом редком случае - лучше написать скриптик на том же Python и определить по косв признакам (типам полей, данных) - где паразитный разделитель стоит подавить.
<lo-ru-tg>
<economist> Ну и потом - данные для анализа/загрузки в БД - из CSV не надо никуда больше переводить ни в какой XLSX. Любую хируругию, чистку итп - проще, быстрее, нагляднее сделать в JupyterLab/Pandas, причем каждый шаг обработки - виден в отдельной "клетке" кода
<lo-ru-tg>
<economist> В общем, какое время - такие и инструменты. Еще 10 лет назад альтернатив не было.
<lo-ru-tg>
<economist> "Длинные" столбцы можно найти так, налету превратив всё, даже числа, в строки:
<lo-ru-tg>
<Eugene> В общем, Calc просто обрезает длинную строку. В данном случае это была колонка SUPDISTFILES ("BT"). У пакета "www/hugo" было большое количество модулей на Go для компиляции.
<lo-ru-tg>
<Eugene> Вообще, две фичи хорошо бы зареквестить:
<lo-ru-tg>
<Eugene> 2) Чтобы Calc предупреждал о том, что работа с документам будет медленной, начиная с какого-то порога (размера файла, количества ячеек или столбоцов).
<lo-ru-tg>
<Eugene> 1) Чтобы Calc писал конкретные имена ячеек, где он обрезал данные, это может быть даже кратенький отдельный файлик с отчетом.
<lo-ru-tg>
<economist> Ограничения Calc не зря объявлены - это и есть ваши ичи.
<lo-ru-tg>
<economist> Каждой задаче - свой инструмент. Ваша задача решалась за 11 секунд плюс минута на написание кода (см выше ). И другая похожая - решится так же.
<lo-ru-tg>
<economist> А разрабам LO хватает обычных багов для практики.
<lo-ru-tg>
<economist> [EDIT] Ограничения Calc не зря объявлены - это и есть ваши фичи.
<lo-ru-tg>
<economist> Каждой задаче - свой инструмент. Ваша задача решалась за 11 секунд плюс минута на написание кода (см выше ). И другая похожая - решится так же.
<lo-ru-tg>
<economist> А разрабам LO хватает обычных багов для практики.
<lo-ru-tg>
<economist> [EDIT] Ограничения Calc не зря объявлены - это и есть ваши фичи.
<lo-ru-tg>
<economist> Каждой задаче - свой инструмент. Ваша задача решалась за 11 секунд плюс минута на написание кода (см выше). И другая похожая - решится так же быстро. Сравните со своим потраченным временем и ожиданием Калка.
<lo-ru-tg>
<economist> А разрабам LO хватает обычных багов для практики.
<lo-ru-tg>
<Eugene> Мне - нормально, т.к. остальные подобные таблицы я экспортировал в xlsx без проблем.
<lo-ru-tg>
<Eugene> К сожалению, не все прямо так влёт могут писать на Пайтоне.
<lo-ru-tg>
<Eugene> 11 секунд - это цена многих дней обучения.
<lo-ru-tg>
<economist> Но Пайтон есть внутри LO, даже при портбл - версии. Т.е. к нему можно относится как к "батарейкам", которые стоит изучить и применять. Уж больно он быстр в подобных случаях.
<lo-ru-tg>
<Eugene> Быстр, но это уже не LibreOffice. Вы назвали совершенно другой инструмент для решения,
<lo-ru-tg>
<Eugene> Pandas, Anaconda - это какой-то другой продукт. Плюс, эти изученные знания вообще никак не передаются.
<lo-ru-tg>
<Eugene> Если вызов того или иного диалога в LibreOffice я могу рассказать по телефону, то для Пайтона нужно будет писать, пересылать код, а так и рассказывать как именно его запустить.
<lo-ru-tg>
<Eugene> Правда, там не сообщают никаких подробностей. Система как-то сама догадалась о том, что разделитель - это <tab> и никаких ошибок не выдала.