我寻找这个答案已经有2个小时了。
是否可以将新创建的工作簿保存为csv或csv-utf8文件?
我知道如何将其保存为xlsx xlsm等,但csv似乎不起作用。
保存以下部分代码:
wb = xw.Book()
wb.sheets.add('Ceny')
wb.sheets['Ceny'].range('A1').options(index=False, header=False).value = mainDF
wb.save(r'D:mainDF.csv')
wb.app.quit()
Error I am getting:
file_format = ext_to_file_format[target_ext]
KeyError: '.csv'
我正在阅读,我应该指定文件格式,也许使用保存??但我不知道该怎么做
你可以使用像这样的东西,但它有点混乱-当你运行这段代码时,会弹出一个Excel实例。
而且,据我所知,它是Windows特定的操作系统。
import pandas as pd
import xlwings as xw
from xlwings.constants import FileFormat
mainDF = pd.DataFrame({'Field1':[1,2,3,4], 'Field2':['a', 'b', 'c', 'd']})
with xw.App() as app:
wb = app.books.add()
wb.sheets.add('Ceny')
wb.sheets['Ceny'].range('A1').options(index=False, header=False).value = mainDF
wb.api.SaveAs(r'C:TestPythonExamplesmainDF.csv', FileFormat:=FileFormat.xlCSV)
我认为它目前不支持,因为我在macOS上实现时遇到了一些问题。有效的方法是使用Python工具来完成它,就像这样:
import xlwings as xw
import csv
sheet = xw.books.active.sheets.active
with open('mycsv.csv', 'w') as csvfile:
writer = csv.writer(csvfile)
writer.writerows(sheet.used_range.value)