Правильно конвертировать XLSX в CSV

Это проблема, очень похожая на описанную здесь. Однако мне нужно делать это горизонтально, и мои проблемы возникают с датой. Я на Mac.

Это - изображение моего документа .xlsx. У меня много записей, подобных тем, что находятся в первых трех строках, и я хочу преобразовать их в CSV как последние три. Но моя проблема в следующем:

  • 2012-08-16 (в A1) становится 41137 (в A4)
  • Моя сессия с 08:00 до 09:00 длится 01:00 часа (см. H1, I1 и J1) превращается в беспорядок -, 0,33333333333333333,0,375,
  • Моя сессия с 09:00 до 10:00 имеет ту же проблему, что и предыдущая, только разные цифры.

Моя конечная цель - экспортировать мой табель .xlsx в toggl

P.S. Незначительные проблемы, которые могут привести к настоящим:

  • A1 16.08.2012 становится 16 авг.12
  • J1 01:00:00 становится 01:00, а 08:00:00 становится 08:00, а 09:00 становится 08:00:00 и т. Д.

person jacob    schedule 16.08.2012    source источник


Ответы (1)


Самое простое решение - просто «Сохранить как ...» и выбрать в качестве типа файла CSV.

Я предполагаю, что вы пытаетесь сделать это каким-то автоматическим способом. Если верны следующие предположения:

  • вы на платформе Windows
  • Excel установлен

Самый простой способ преобразовать XLSX в CSV - использовать VB Script:

Set objArgs = WScript.Arguments
InputName = objArgs(0)
OutputName = objArgs(1)
Set objExcel = CreateObject("Excel.application")
objExcel.application.visible=false
objExcel.application.displayalerts=false
set objExcelBook = objExcel.Workbooks.Open(InputName)
objExcelBook.SaveAs OutputName, 23
objExcel.Application.Quit
objExcel.Quit

Вызовите это как:

wscript script.vbs C:\...\file.xlsx C:\...\file.csv

Обновление. Взгляните на эту публикацию, которая выполняет преобразование с помощью сценария Perl.

Обновление 2 По-видимому, код VBA привередлив в отношении путей. Неквалифицированные пути разрешаются относительно вашего каталога документов. Поэтому для воспроизводимых результатов используйте полный путь к файлам ввода и вывода.

person Devon_C_Miller    schedule 16.08.2012
comment
Я на макинтоше. Да, я действительно хочу делать это автоматически. - person jacob; 16.08.2012
comment
Я попробовал это из любопытства и получил 'file.xlsx' not found. Check the spelling of the file name, and verify that the file location is correct.. Я выполнил команду из командной строки из каталога, в котором находятся все файлы. - person cusman; 19.02.2013
comment
Попробуйте использовать полный путь к файлу file.xlsx. - person Devon_C_Miller; 21.02.2013