CSV в xls как сделать автоматом

Автор ink-service, 18 июня 2021, 14:44

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

mikekaganski

Цитата: ink-service от 21 июня 2021, 14:32
Цитата: mikekaganski от 21 июня 2021, 12:48Там у Вас числа типа 2,00001E+12, и это неправильно
хм..  а у меня такое не отображается. сразу все нормально показывается , вообще это ШтрихКод товара, по нему я соответствие делаю потом.

Естественно - потому что Calc расширяет столбец, чтобы число отображалось полностью. Но теперь:


  • Уменьшите ширину столбца; или
  • Используете код 000123456789; или
  • Используйте код 123456789123456789

и посмотрите, как в каждом случае ведёт себя результат. Идентификаторы (если это не настоящие числа, типа порядкового номера) всегда должны импортироваться как текст.

Цитата: ink-service от 21 июня 2021, 14:32
Цитата: mikekaganski от 21 июня 2021, 12:46Код:
soffice --infilter=csv:59,34,76,2,1/2/2/2/3/2/4/2/5/2/6/2,1049 --convert-to xls --outdir output_dir path/to/123.csv
а этот код куда мне теперь? как его запускать? через батник?

Цитата: ink-service от 18 июня 2021, 14:44через планировщик.

Я полагаю, Вы знаете, как использовать планировщик в Вашей операционной системе (неуказанной, кстати). Вот туда эту команду и вставьте (это заготовка команды оболочки - надо только пути прописать).
С уважением,
Михаил Каганский

economist

Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...

ink-service

#17
Хорош...  вечером протестю дома буду,  отпишусь по результату... Спасибо всем))
кстати ОС win7

sokol92

#18
Пример файла Test.bat:

@echo off
rem Преобразовывает %1 (csv) в xls и записывает в каталог %2
chcp 1251
"C:\Program Files\LibreOffice\program\soffice.exe" --infilter=csv:59,34,76,2,1/2/2/2/3/2/4/2/5/2/6/2,1049 --convert-to xls --outdir %2 %1


Запускаем:

C:\temp\Test.Bat C:\Temp\123.csv C:\temp
Владимир.

mikekaganski

Цитата: sokol92 от 21 июня 2021, 15:43
@echo off
rem Преобразовывает %1 (csv) в xls и записывает в каталог %2
chcp 1251
"C:\Program Files\LibreOffice\program\soffice.exe" --infilter=csv:59,34,76,2,1/2/2/2/3/2/4/2/5/2/6/2,1049 --convert-to xls --outdir %2 %1


Нежелательно использовать .exe в командной строке. Начиная с версии 6.3, в ЛО реализован нормальный консольный режим, когда soffice.bin - консольное приложение, нормально направляющее свой вывод в stdout/stderr. Для того, чтобы не вызывать непосредственно soffice.bin, есть новая оболочка, аналогичная soffice.exe, но только тоже консольная - soffice.com. А soffice.exe так и остаётся оконным приложением, с проблемами при выводе в консоль, но зато без показа консоли при запуске.

Так что лучше:

"C:\Program Files\LibreOffice\program\soffice.com" --infilter=csv:59,34,76,2,1/2/2/2/3/2/4/2/5/2/6/2,1049 --convert-to xls --outdir %2 %1

Ну, или просто "C:\Program Files\LibreOffice\program\soffice", если есть уверенность, что интерпретатор корректно подставит сначала .com
С уважением,
Михаил Каганский

sokol92

Михаил, очередное спасибо!!
Владимир.

ink-service

Проверил, вроде все работает.. Спасибо... большое спасибо!!!   огромное спасибо!)))