将csv导入到xlsx python

米哈尔

我正在尝试从csv文件中放入一些数据以存在excel文件。我存在的excel文件包含图像,而xlrd无法获取图像。我尝试使用xlsxwriter,但它无法追加到现有的xslx。我发现的唯一解决方案是使用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单元格开始。

谢谢!

马丁·法布里(MaartenFabré)

读取CSV

使用pandas.read_csv提取的信息

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

您可能需要指定的选项

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

添加到Excel工作表

灵感来自于:https : //stackoverflow.com/a/20221655/1562285查看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')

我没有对此进行测试,因此您可能需要在 writer.sheets = ...

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章