将csv导入xlsx python

我试图把一些csv文件的数据存在excel文件。 我存在的excel文件包含图像和xlrd无法获取图像。 我尝试使用xlsxwriter,但无法附加到现有的xslx。 我发现的唯一解决scheme是使用openpyxl。

import openpyxl xfile = openpyxl.load_workbook('my_exist_file') sheet = xfile.get_sheet_by_name('Sheet1') with open("my_csv", 'rb') as f: reader = csv.reader(f) for r, row in enumerate(reader): for c, col in enumerate(row): -here is my problem- 

我怎样才能将csv数据(即表格)写入存在的xslx中的特定位置? 我希望我的表格将在K2单元格开始。

谢谢!

阅读CSV

使用pandas.read_csv来提取信息

 import pandas as pd df = pd.read_csv(my_filename) 

您可能需要指定的选项

  • sep:使用哪个分隔符
  • 编码
  • 标题:第一行是一行标签吗?
  • index_col:是第一列索引

添加到Excel工作表

启发: https : pandas.to_excel检查pandas.to_excel文档的其他可能的选项

 book = load_workbook(old_filename) sheet_name = 'Sheet1' with pd.ExcelWriter(new_filename, engine='openpyxl') as writer: writer.book = book writer.sheets = dict((ws.title, ws) for ws in book.worksheets) df.to_excel(writer, sheet_name=sheet_name, startrow=1, startcol=10, engine='openpyxl') 

startrow和startcol会在工作表中的哪个位置粘贴数据。

此方法可能会覆盖此工作表上的以前的内容。 如果是这样,则必须遍历DataFrame的列和行,并将其半手动添加到工作表

插入图像

如果您将图像插入到外部,您可以使用文档中的代码

  from openpyxl.drawing.image import Image ws = book['sheet_name_for_images'] ws['A1'] = 'You should see three logos below' img = Image('logo.png') # add to worksheet and anchor next to cells ws.add_image(img, 'A1') 

我没有testing这个,你可能需要在writer.sheets = ...之前插入这个代码writer.sheets = ...

使用工作表的单元格方法来更新特定的单元格

 sheet.cell(row=<row>, column=<col>, value=<val>) 

加载工作簿时使用keep_vba=True通常是一个好主意。 查看帮助页面了解更多详情。

还要检查这个问题的答案 。