по импорту CSV

Автор maxim, 8 октября 2014, 07:31

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

maxim

Доброго времени суток уважаемые форумчане!
Подобную тему уже открывал кто-то в 2010году http://forumooo.ru/index.php/topic,643.0.html#quickreply ,но нет полной ясности. Вышло сообщение о том что лучше создать новую тему - поэтому создаю.

1. Я прошу пояснить мне:   Выходит что Calc не может импортировать csv в готовый лист. Т.е. Calc может импортировать, но при этом создаёт только новый лист или новый документ?
Вообще мне лично не нужно чтобы он импортировал именно в заданный диапазон, а просто чтобы импортировал в заранее созданный, пустой, лист моего шаблона .ots , начиная в верхней, левой ячейки. Мне это нужно чтобы потом эти данные обработать формулами (т.е. чтобы связь была между листами, а если новый лист то связей нет)

2. Мне кажется такая задача распространённая, и если это не делает программа, значит наверняка существуют готовые какие-то дополнения, макросы, скрипты. Вопрос - существуют ли они? Или существуют другие варианты (как большинство людей решают эту задачу)?

3. Если они существуют, то подскажите пожалуйста где их можно взять (может это платный продукт)?



Вообще для себя лично в идеале я вижу это так: Открываю свой шаблон Calc -> Нажимаю горячую клавишу -> Диалоговое окно с  выбором пути -> Всё!, данные импортированы, а мои формулы обработали всю информацию.   :)

Спасибо.


maxim

Вот жалко что нельзя мои формулы привязать к новому созданному листу (после импорта из CSV)!
Можно было бы просто горячую клавишу сделать на команду Вставка -> Лист из файла...    и всё решилось бы!

rami

А какой у вас Офис?

maxim

Цитата: rami от  8 октября 2014, 09:09А какой у вас Офис?
У меня OpenOffice Apache 4.1.1

maxim

А в  LibreOffice это можно сделать?

rami

Цитата: maxim от  8 октября 2014, 09:48У меня OpenOffice Apache 4.1.1
Печаль безутешная... :'( А я уже хотел было поделиться своими макросами (в LibreOffice работает хорошо) , проверил в Apache OpenOffice 4.1.1 — получил кракозябры вместо текста, а с числами нормально (это потому что фильтр поломан).
Цитата: maxim от  8 октября 2014, 09:58А в  LibreOffice это можно сделать?
А в LibreOffice можно взять произвольный диапазон из файла .csv и вставить в любое место текущего документа не повреждая соседние данные (формулы будут вычислять вставленные значения)
в Apache OpenOffice 4.1.1 можно сделать тоже самое, только без текста на русском

maxim

О, если так, то может я на LibreOffice переберусь. Я уже как то пробовал, но у меня не корректно работала моя таблица рассчёта, которую Apache создал. Я всё равно хочу снова многое переделывать.
Но вы написали что "без текста на русском", можно и в Apache, просто у меня и так не будет текста на русском.

maxim

Поделитесь пожалуйста макросами :)  Я наварно сегодня, завтра попробую Libre. Установлю наверно и то и другое и проверю.

rami

Если хотите остаться на Apache, выложите файл CSV.
Я, конечно выложу и для LibreOffice и для Apache, но это займёт время(сегодня). В любом случае выложите баш файл CSV.

maxim

Вот пример моего файла, но здесь есть ещё пока кирилица.
Если честно то разделить по столбцам также не удаёться корректно, я думал формулами доработать. Всё равно попробую тоже в Libre сегодня или завтра. Может получше будет.
В параметрах разделителя я ставил галочку в Другие и прописывал символ  '     и такой же символ в разделитель текста. Только тогда боле мене как то разделялось по столбцам. Но и то цифры все в одном столбце через запятую.

rami

Вот, например, для LibreOffice. Открываете Копия Решение.ods и в макросе в строке sURL="file:///Адрес/Вашего/Файла/ПриходРасход.csv" пишете адрес файла ПриходРасход.csv, потом жмёте на кнопку "ImportCSV" и в красной рамке появляются данные из файла ПриходРасход.csv, вычисляются формулы в зелёных ячейках и отрисовывается график.

Но в Apache кирилица превращается в кракозябрицу ;D

JohnSUN

Там при импорте кодировку нужно жестко задать Юникод (UTF-8), чтобы вместо кракозябр кириллицу получить.
А с числами по габаритам - беда! Эта запятая в числе всю красоту портит. В тестовом-то файле по X и Y ноли после запятой, а вот по Z встречаются дробные значения.
Тут два варианта: или смириться и восстанавливать полное значение из двух смежных ячеек, или предварительно обрабатывать исходный файл (менять запятую перед цифра-mm на точку).

Я бы все-таки посмотрел в сторону Вставка-Лист из файла... с флажком Связь с файлом. Тогда один раз настроив фильтр и сохранив книгу в шаблоне, можно было бы по событию Документ создан спрашивать путь к новым исходным данным (стандартный диалог открытия файла) и прописывать его в .setLinkUrl() для этого листа.
Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне

maxim

Спасибо большое rami !  Теперь я попробую


Цитата: JohnSUN от  8 октября 2014, 12:36Там при импорте кодировку нужно жестко задать Юникод (UTF-8), чтобы вместо кракозябр кириллицу получить.
Да действительно получаеться без кракозябр.

Цитата: JohnSUN от  8 октября 2014, 12:36Я бы все-таки посмотрел в сторону Вставка-Лист из файла... с флажком Связь с файлом. Тогда один раз настроив фильтр и сохранив книгу в шаблоне, можно было бы по событию Документ создан спрашивать путь к новым исходным данным (стандартный диалог открытия файла) и прописывать его в .setLinkUrl() для этого листа.
Да это интересно. Мне надо обдумать всё. А чтобы документ запрашивал путь при открытии, напомните где это настраивается? Вот я захожу Сервис -> Настройки -> Вкладка События -> Документ создан.... , а дальше я вижу что можно присвоить макрос, но какой?

Цитата: JohnSUN от  8 октября 2014, 12:36и прописывать его в .setLinkUrl() для этого листа.
Здесь не понятно, поясните пожалуйста.


maxim

Цитата: JohnSUN от  8 октября 2014, 12:36Тут два варианта: или смириться и восстанавливать полное значение из двух смежных ячеек, или предварительно обрабатывать исходный файл (менять запятую перед цифра-mm на точку).
Возможно удастся заменить запятые на точки в дробных числах (сейчас прочитал на форуме иностранном) Но если нет, то как я понимаю можно востановить всё формулами? Или нет?

rami

Было бы интересно знать откуда берутся такие кривые файлы CSV? Наверно кто-то создаёт "красивые" таблицы с "шикарным" форматированием, а потом сохраняет в формат CSV и числа вида "50,0mm" воспринимаются как текст с последующей разбивкой по запятой, а в колонке "AREA" наверно была формула, значение которой передаётся в соответствии с настройками языка(с разделителем точкой). Нужно правильно создавать файл CSV , тогда не будет проблем с импортом, инче придётся много "работать ручками". maxim, а какие данные нужно импортировать? Может быть можно "выдернуть" только нужный "кусок" данных.
Цитата: maxim от  8 октября 2014, 13:41Возможно удастся заменить запятые на точки в дробных числах (сейчас прочитал на форуме иностранном) Но если нет, то как я понимаю можно востановить всё формулами? Или нет?
Исправить можно и формулами и макросами, но это в крайнем случае безысходности. Представьте, что вы заказали новенький автомобиль 8-), а вам привезли :o вдребезги разбитую машину со словами: "можно починить и будет как новенькая"