что делать с UTF-8 в CSV-файлах?
Модератор: Модераторы
-
RusDeveloper
- новенький
- Сообщения: 92
- Зарегистрирован: 06.04.2016 11:02:43
что делать с UTF-8 в CSV-файлах?
использую компонент TfrCSVExport из lrcarioexport 0.9 для экспорта отчетов из LazReport в CSV. эспортируется нормально, но кодировка в CSV-файле UTF-8. как результат: в MS Excel открывается кракозябра, в LibreOffice приходится выбирать кодировку UTF-8. в то время как с другими экслевскими файлами таких проблем нет. Вопрос: можно ли сразу экспортировать в CSV с такой же кодировкой, которая используется по умолчанию для подобных файлов?
- Снег Север
- долгожитель
- Сообщения: 3071
- Зарегистрирован: 27.11.2007 15:14:47
- Контактная информация:
Это какой седой древности MS Excel не открывает CSV в UTF-8??? Как минимум, с 2007 открывает без проблем.
- Лекс Айрин
- долгожитель
- Сообщения: 5723
- Зарегистрирован: 19.02.2013 16:54:51
- Откуда: Волгоград
- Контактная информация:
Снег Север
некоторые до сих пор в 2003 сидят -- не любят риббоны.
некоторые до сих пор в 2003 сидят -- не любят риббоны.
-
RusDeveloper
- новенький
- Сообщения: 92
- Зарегистрирован: 06.04.2016 11:02:43
Эксель - только на просмотр, т.е. лицензионный, но никем не зарегистрирован
Последний раз редактировалось RusDeveloper 24.06.2016 18:11:14, всего редактировалось 1 раз.
Снег Север писал(а):открывает без проблем
ну так надо ж задать в дополнительных параметрах кодировку, а иначе откроет в cp1251, если напрямую не задано. Кнопочка (или что там - checkpoint - давненько экселя не видел) не всем по глазам на самом деле.
-
RusDeveloper
- новенький
- Сообщения: 92
- Зарегистрирован: 06.04.2016 11:02:43
вопрос был не про кнопочки в Экселе или в другом каком-то офисе, а про экспорт в CSV. прочтите первое мое сообщение
- Снег Север
- долгожитель
- Сообщения: 3071
- Зарегистрирован: 27.11.2007 15:14:47
- Контактная информация:
2010-й открывает нормально безо всяких кнопочек. Только что проверял. Более древнего у меня просто нет.SSerge писал(а):ну так надо ж задать в дополнительных параметрах кодировку, а иначе откроет в cp1251, если напрямую не задано. Кнопочка (или что там - checkpoint - давненько экселя не видел) не всем по глазам на самом деле.Снег Север писал(а):открывает без проблем
RusDeveloper
Версия компонента 0.9, писал его поди какой-нибудь американец, никакого представления о кодировках там скорее всего нет.
Точнее скажет только исходный код компонента.
Скорее всего окажется - что никак. В чем создана строка, так и пишется.
А кроме того, может еще и разница в поведении быть, зависящая от версии лазаруса и от компилятора, на котором она базируется.
Версия компонента 0.9, писал его поди какой-нибудь американец, никакого представления о кодировках там скорее всего нет.
Точнее скажет только исходный код компонента.
Скорее всего окажется - что никак. В чем создана строка, так и пишется.
А кроме того, может еще и разница в поведении быть, зависящая от версии лазаруса и от компилятора, на котором она базируется.
CSV <> другими экслевскими файлами. Это импортируемый файл.
Если не ошибаюсь то в момент импорта в 2003 офисе есть выбор кодировки. Да и в ранних версиях. Как и в поздних.
Есть два варианта:
1. Попробовать как поведёт себя lrSpreadSheetExport;
2. Написать своё (или добавить возможность выбора кодировки в существующий).
Если не ошибаюсь то в момент импорта в 2003 офисе есть выбор кодировки. Да и в ранних версиях. Как и в поздних.
Есть два варианта:
1. Попробовать как поведёт себя lrSpreadSheetExport;
2. Написать своё (или добавить возможность выбора кодировки в существующий).
- alexs
- долгожитель
- Сообщения: 4069
- Зарегистрирован: 15.05.2005 23:17:07
- Откуда: г.Ставрополь
- Контактная информация:
А почему вообще CVS? Есть же вроде нормальный экспортер в электронные таблицы (lrSpreadSheetExport). Там и форматирование сохранится, и красивости, и картинки...
И если что то не так будет - вопросы задать можно
И если что то не так будет - вопросы задать можно
ответ по существу. кросс. не изящен, но работает
P.S. Уоточнюсь - так решая для другого компонента. Думаю переделать труда не составит.... Если составит - пишите в личку - постараюсь помочь совсем предметно )))
Код: Выделить всё
procedure save_grid_to_csv(grid: tstringgrid; path: string);
var
csv:tstringlist;
begin
Grid.SaveToCSVFile(path,';');
{$IFDEF MSWindows}
csv:=tstringlist.Create;
csv.LoadFromFile(path);
csv.Text:=utf8toAnsi(csv.Text);
csv.SaveToFile(path);
csv.Free;
{$ENDIF}
end;
P.S. Уоточнюсь - так решая для другого компонента. Думаю переделать труда не составит.... Если составит - пишите в личку - постараюсь помочь совсем предметно )))
-
RusDeveloper
- новенький
- Сообщения: 92
- Зарегистрирован: 06.04.2016 11:02:43
alexs писал(а):А почему вообще CVS? Есть же вроде нормальный экспортер в электронные таблицы (lrSpreadSheetExport). Там и форматирование сохранится, и красивости, и картинки...
И если что то не так будет - вопросы задать можно
вопросы уже есть
Добавлено спустя 3 минуты 47 секунд:
вот тема про lrSpreadSheetExport:
http://www.freepascal.ru/forum/viewtopic.php?f=5&t=11188
для установки данного пакета нужен пакет lazreport 0.9.9, а для последнего нужен пакет Printer4Lazarus 0.5, который я и не могу установить...
Добавлено спустя 1 минуту 34 секунды:
по CSV всем спасибо, буду думать...
Снег Север писал(а):2010-й открывает нормально безо всяких кнопочек. Только что проверял. Более древнего у меня просто нет.
Вчера игрался с 2010. Если расширение csv - открывает автоматом думая что кодировка ANSI, если расширение txt - спрашивает какая кодировка и какие разделители у колонок.
alexs писал(а):А почему вообще CVS? Есть же вроде нормальный экспортер в электронные таблицы (lrSpreadSheetExport).
csv удобный формат очень, если просто таблицами обменяться надо между разными программами или заполнить какие то каталоги.
- alexs
- долгожитель
- Сообщения: 4069
- Зарегистрирован: 15.05.2005 23:17:07
- Откуда: г.Ставрополь
- Контактная информация:
Sharfik писал(а):csv удобный формат очень, если просто таблицами обменяться надо между разными программами или заполнить какие то каталоги.
Вот только генерить его в LazReport-е - не очень. Там нет гарантии его стабильности. Надо извращаться над отчётом.
- Снег Север
- долгожитель
- Сообщения: 3071
- Зарегистрирован: 27.11.2007 15:14:47
- Контактная информация:
Sharfik писал(а):Вчера игрался с 2010. Если расширение csv - открывает автоматом думая что кодировка ANSI, если расширение txt - спрашивает какая кодировка и какие разделители у колонок.
Я делал в Notepad++ UTF8 текстовый файл, содержавший принципиально разные кодировки - русский и иврит, например, сохранял как csv, и открывал в 2010-м экселе. Открывалось без вопросов и в правильном отображении.
