将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
通常是一个好主意。 查看帮助页面了解更多详情。
还要检查这个问题的答案 。