Конвертировать.CSV для.XLSX с помощью командной строки
Я ищу способ, чтобы конвертировать серии .csv
файлы .xlsx
С помощью командной строки.
Я пробовал кучу разных VBScripts, которые я нашел, но все они, похоже, преобразуют .xlsx
to .csv
, а не наоборот.
вот ближайший, который я мог найти, но снова это .xlsx
to .csv
:
if WScript.Arguments.Count < 2 Then
WScript.Echo "Error! Please specify the source path and the destination. Usage: XlsToCsv SourcePath.xls Destination.csv"
Wscript.Quit
End If
Dim oExcel
Set oExcel = CreateObject("Excel.Application")
Dim oBook
Set oBook = oExcel.Workbooks.Open(Wscript.Arguments.Item(0))
oBook.SaveAs WScript.Arguments.Item(1), 6
oBook.Close False
oExcel.Quit
WScript.Echo "Done"
какие идеи?
5 ответов
только при условии, что ".csv " должен быть строчным в имени файла:
Dim file, WB
With CreateObject("Excel.Application")
On Error Resume Next
For Each file In WScript.Arguments
Set WB = .Workbooks.Open(file)
WB.SaveAs Replace(WB.FullName, ".csv", ".xlsx"), 51
WB.Close False
Next
.Quit
End With
WScript.Echo "Done!"
отказ от ответственности: я написал CSV2XLSX доступен как с открытым исходным кодом вhttps://gitlab.com/DerLinkshaender/csv2xlsx
вы можете попробовать внешний инструмент, подобный приведенному выше. Почему?
плюсы:
- может использоваться даже там, где блокируется хост скрипта Windows.
- независимо от операционной системы, поэтому вы можете использовать знакомый инструмент с тем же набором опций на каждой ОС (сохранить память мозга :-) ).
- нет установка Excel или LibreOffice и т. д. необходимо, поэтому вам не нужно заботиться об установке дополнительных модулей или языков.
- указание нескольких параметров CSV в качестве параметров командной строки делает инструмент" sysadmin-friendly", поскольку им не нужно копать исходный код.
- вы даже можете указать диапазоны строк или столбцов для данных csv.
- формат файла xlsx очень сложный, писать его без обращения к установке пакета office не для слабонервные.
- улучшайте одетый для пакетной обработки по мере того как инструмент можно интегрировать в ОС-специфической логике петли.
- Я попытался предоставить полезный набор флагов командной строки с DevOps / SysAdmin в виду, многие существующие скрипты не имеют хорошего контроля через параметры командной строки.
для Windows я недавно ответил на аналогичный вопрос о SuperUser.com.
https://superuser.com/a/1011154/326177
Я думаю всего CSV конвертер является наименее дорогостоящим вариантом с большинством функций. Он даже не требует установки Excel и может выводить данные CSV в JSON, Access, DBF, XML или SQL.
http://www.coolutils.com/TotalCSVConverter
CSVConverter.exe <source> <destination> <options>
вы на Windows или Linux / Mac?
У меня может быть решение для вас в любом случае.
вот решение ваших проблем без программах прокомментировал ниже:
редактировать Итак, вот основное решение:
в основном вы применяете фильтр (который в этом случае будет фильтр xlsx) из каталога, в котором находится ваш файл.
Nvm это я только что видел, что вы находитесь на Windows ./ каталог --headless --convert-to xlsx: файл" Calc MS Excel 2007 XML".csv
в этом случае "Calc MS Excel 2007 XML" является фильтром.
Это работает для отдельных файлов, позвольте мне добавить пакет в секунду.
вот инструмент с открытым исходным кодом для машин Windows, которые я создал с помощью библиотек NPOI, который выполняет простые преобразования с разделителями в XLS/XLSX без необходимости установки Excel на машине. Двоичный файл находится в Bin / Debug, если вы не хотите создавать его самостоятельно. Все необходимые библиотеки включены в исполняемый файл, чтобы он мог работать автономно.