我试图将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格开始。
谢谢!
答案 0 :(得分:0)
使用工作表的单元格方法更新特定单元格
sheet.cell(row=<row>, column=<col>, value=<val>)
在加载工作簿时使用keep_vba=True
通常是个好主意。查看the help page了解详情。
同时检查answer to这个问题。
答案 1 :(得分:0)
使用pandas.read_csv
提取信息
import pandas as pd
df = pd.read_csv(my_filename)
您可能需要指定的选项
受到启发: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的列和行,并将它们半手动添加到工作表中
如果要在外部插入图像,可以使用documentation
中的代码 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 = ...