2012-08-16 28 views
6

Este es un problema muy parecido al descrito here. Sin embargo, tengo que hacerlo horizontalmente, y mis problemas ocurren con la fecha . Estoy en una Mac.Convierte XLSX a CSV correctamente

This es una imagen de mi documento .xlsx. Tengo muchas entradas como las de las primeras tres filas, y quiero convertirlas en CSV como las últimas tres. Pero mi problema es el siguiente:

  • 2012-08-16 (en A1) se convierte en 41137 (en A4)
  • Mi sesión de 08:00 a 09:00 es 01:00 hora de duración (ver H1 e I1 y J1) se convierte en un desastre - , 0,333333333333333,0,375,
  • Mi sesión de 09:00-10:00 tiene la mismo problema que el anterior, sólo que los números desordenados son diferente.

Mi objetivo final es exportar mi hoja de tiempo .xlsx en toggl

P. S. Los problemas menores que pueden conducir a los reales:

  • A1 2012-08-16 convierte en 16-ago-12
  • J1 01:00:00 se convierte en 1:00, así como se convierte en 08:00:00 08:00 y 09:00 se convierte en 08:00:00 y así sucesivamente.

Respuesta

7

La solución más fácil es simplemente "Guardar como ..." y seleccionar CSV como el tipo de archivo.

Supongo que estás tratando de hacer esto de manera automatizada. Si las suposiciones siguientes son verdaderas:

  • estás en una plataforma Windows
  • Excel está instalado

la forma más fácil de convertir "XLSX" a "CSV" es con un poco de VB guión:

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 

invocar este como:

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

Actualización: Eche un vistazo a este posting que realiza la conversión con un script de Perl.

Actualización 2 Aparentemente, el código VBA es quisquilloso con respecto a las rutas. Las rutas no calificadas se resuelven en relación con su directorio de documentos. Por lo tanto, para obtener resultados reproducibles, use una ruta completa a los archivos de entrada y salida.

+0

Estoy en un mac. Sí, quiero hacerlo de manera automatizada. – jacob

+0

Probé esto por curiosidad y no encontré un archivo '' file.xlsx '. Verifique la ortografía del nombre del archivo y verifique que la ubicación del archivo sea correcta. Ejecuté el comando desde Símbolo del sistema desde el directorio donde se encuentran todos los archivos. – cusman

+0

Intenta usar una ruta completa a file.xlsx. –