将csv导入xlsx python
我正在尝试将csv文件中的一些数据放到excel文件中。 我的exist excel文件包含图像,xlrd无法获取图像。 我尝试使用xlsxwriter,但它不能附加到现有的xslx。 我找到的唯一解决方案是使用openpyxl将csv导入xlsx python,python,excel,csv,Python,Excel,Csv,我正在尝试将csv文件中的一些数据放到excel文件中。 我的exist 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
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数据(即表)写入exist xslx中的特定位置?我希望我的桌子从K2单元开始
谢谢 使用工作表的单元格方法更新特定单元格
sheet.cell(row=<row>, column=<col>, value=<val>)
sheet.cell(行=,列=,值=)
加载工作簿时,通常最好使用保持_vba=True
。查看更多详细信息
同时检查此问题。阅读CSV
使用来提取信息
import pandas as pd
df = pd.read_csv(my_filename)
您可能需要指定的选项
- sep:使用哪种分离器
- 编码
- 标题:第一行是标签行吗
- 索引列:第一列是索引吗
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会指出要在工作表中粘贴数据的位置
此方法可能会覆盖此工作表上以前的内容。如果是这样的话,您必须循环数据框的列和行,并半手动地将它们添加到工作表中
插入图像
如果要在外部插入图像,可以使用
我没有对此进行测试,您可能需要在
writer.sheets=…
之前插入此代码。谢谢,我尝试了此操作,但现在在单元格K2中,我只有一个字母,而不是所有的表格。pandas有一个优秀的读取csv
方法,您可以使用(在您尝试之前,我仍然会保留一些excel备份,因为它可能会删除工作表上的其他内容)谢谢,我查看了解决方案,并将我的csv数据插入到:data=pandas.read_csv(“my_csv”),然后我尝试将数据插入到\u excel(编写器,“Sheet1”)但是我的数据不是utf-8格式。我如何解码?+我不知道我在exist文件中将K2单元格作为csv的起始单元格放在哪里你还记得你的解决方案吗?我在这里遇到了一个类似的问题:现在的问题是我的exist xlsx文件包含图像,而在新文件中它们不存在:(来自Openpyxl文档:Openpyxl当前未读取Excel文件中所有可能的项目,因此如果使用相同的名称打开和保存现有文件,则图像和图表将从中丢失。
在生成新文件时是否可以插入图像?我不测试此项,但我在代码中添加了第一次尝试。)
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')