xlwings是否可以将文件保存为csv?

1tuwyuhd  于 5个月前  发布在  其他
关注(0)|答案(3)|浏览(79)

我找这个答案已经找了两个小时了。
是否可以保存新创建的工作簿为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()

字符串
我得到的错误:

file_format = ext_to_file_format[target_ext]
KeyError: '.csv'


我正在阅读,我应该sepify文件格式,也许使用保存??但我不知道如何做到这一点:(

cpjpxq1n

cpjpxq1n1#

你可以使用类似的东西,但它有点混乱-当你运行这段代码时,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:\Test\PythonExamples\mainDF.csv', FileFormat:=FileFormat.xlCSV)

字符串

bogh5gae

bogh5gae2#

我相信它目前还不受支持,因为我在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)

字符串

qij5mzcb

qij5mzcb3#

似乎没有直接的方法来保存工作表为CSV文件。其他方法来删除范围内的每一行都太慢或不稳定。如果我们使用剪贴板,这个过程是快速和可靠的。

#dependency
import pyperclip
import xlwings as xw

    wb = xw.Book(filename)
    sht=wb["sheetname"]

#copy selected data to clipboard first
    real_range = sht["A1"].expand()
    real_range.clear_formats()
    real_range.select()
    real_range.copy()

#use clipboard data
    csv_data = pyperclip.paste()
    
    with open(OutputCsvFile, 'w') as file:
        csv_writer = csv.writer(file, delimiter=",")
        for row in csv_data.split("\n"):
            csv_writer.writerow(row.split("\t"))

    print("%s output successfully!\n" % OutputCsvFile)

字符串

相关问题