如何复制csv内容并粘贴到Excel工作表?

我正在使用python v3 xlwings库与MS Excel进行交互。 我有一个csv文件ToCopy.csv并希望将这个CVS文件的全部内容复制到一个Excel文件。

 import xlwings as xw Book_name = 'C:/Temp/ExcelBook.xlsm' sheet_name = 'SheetName' #paste into this sheet wb = xw.Book(Book_name) sht = wb.sheets[sheet_name] 

我看了xlwings的文档,但是如何开始还是处于亏损状态。 有人可以给我一个开始?

我很乐意使用其他不基于xlwings库的方法。 但是,我的Excel文件是密码保护,我知道xlwings可以处理密码保护的Excel文件。 我不确定其他方法。

所以从文档http://docs.xlwings.org/en/stable/quickstart.html

从/向范围读取/写入数值非常简单:

 >>> sht.range('A1').value = 'Foo 1' >>> sht.range('A1').value 

'Foo 1'有许多便利的function,例如范围扩展:

 >>> sht.range('A1').value = [['Foo 1', 'Foo 2', 'Foo 3'], [10.0, 20.0, 30.0]] >>> sht.range('A1').expand().value [['Foo 1', 'Foo 2', 'Foo 3'], [10.0, 20.0, 30.0]] 

在第一个示例中,将值写入位置A1。 第二,价值正在写A1,B1,C1和A2,B2,C2

所以你可能想要做类似的事情

 for row,line in enumerate(inputcsv): myrange = 'A'+row mydata = line.split(',') sht.range(myrange).value = mydata 

其他选项:

  1. Excel将直接导入csv – 手动导入
  2. VBAmacros在Excel中导入文件,通过xlwing触发

既然你写,你已经尝试xlsxwriter这可能无法正常工作,但你有没有考虑过openpyxl?

 from openpyxl import load_workbook from openpyxl.utils.dataframe import dataframe_to_rows import pandas as pd df = pd.read_csv('ToCopy.csv', header=None, index_col=None) wb = load_workbook(filename='C:/Temp/ExcelBook.xlsm') ws = wb.create_sheet() ws.title = 'ToCopy' for r in dataframe_to_rows(df, index=False, header=False): ws.append(r) wb.save('C:/Temp/ExcelBook.xlsm') 

尝试打开csv并直接保存为xlsx:

 import xlwings as xw wb = xw.Book('C:\source.csv') # Connect to an existing file # wb = xw.Book(r'C:\Users\hhsg\Desktop\target.xlsx') # On Windows: use raw strings to escape backslashes wb.save('C:\target.xlsx') # wb.save(r'C:\target.xlsx') # On Windows: use raw strings to escape backslashes