2014-06-11 8 views
2

CSV 파일을 xlsb로 변환하고 싶습니다.파이썬을 사용하여 CSV 파일을 xlsb로 변환하려면 어떻게해야합니까?

import subprocess 

subprocess.call("cscript CsvToExcel.vbs data.csv data.xlsb", 
       stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=False) # Supress any messages 

문제는 나뿐만 넣어 할 수있는 권리 값을 찾을 수 있다는 것입니다 : 내 코드는 다음과 같다

if WScript.Arguments.Count < 2 Then 
    WScript.Echo "Please specify the source and the destination files. Usage: ExcelToCsv <xls/xlsx source file> <csv destination file>" 
    Wscript.Quit 
End If 

csv_format = 6 

Set objFSO = CreateObject("Scripting.FileSystemObject") 

src_file = objFSO.GetAbsolutePathName(Wscript.Arguments.Item(0)) 
dest_file = objFSO.GetAbsolutePathName(WScript.Arguments.Item(1)) 

Dim oExcel 
Set oExcel = CreateObject("Excel.Application") 

Dim oBook 
Set oBook = oExcel.Workbooks.Open(src_file) 

oBook.SaveAs dest_file, csv_format 

oBook.Close False 
oExcel.Quit 

: 나는 아래의 코드는이 Convert XLS to CSV on command line에서 두 번째 대답을 사용 xlsb 형식. 사용할 수있는 값이있는이 XlFileFormat Enumeration (Excel)을 찾았지만 어느 것이 필요한지 확실하지 않습니다.

유용한 팁 : 첫 번째 줄의 첫 번째 항목이있는 CSV를 누군가 ID로 변환하려고하면 오류가 발생합니다. ID를 id로 변경하면 더 좋을 것입니다. 자세한 정보는 SYLK: File format is not valid입니다.

답변

2

this, xlsb 형식에 따라 - 값이 50 (51 Mac의 경우 Excel) 인 xlExcel12입니다. 또한 pywin32 라이브러리를 변환 용으로 사용할 수 있습니다.

import win32com.client 
excel = win32com.client.Dispatch("Excel.Application") 
doc = excel.Workbooks.Open('D:\\input.csv') 
doc.SaveAs('D:\\output_bin.xlsb', 50) 
+0

xlsb에 적합한 값을 찾아 주셔서 감사합니다. 1-0과 같은 CSV 파일에 csv를 xlsb로 변환 할 때 날짜를 변경하지 않는 방법이 있는지 알고 계십니까? – GiannisIordanou

관련 문제