I have an excel sheet, which already has some values in some cells.
For ex :-
A B C D
1 val1 val2 val3
2 valx valy
I want pandas to write to specific cells without touching any other cells,sheet etc
This is the code i tried.
import pandas as pd
from openpyxl import load_workbook
df2 = pd.DataFrame({'Data': [13, 24, 35, 46]})
book = load_workbook('b.xlsx')
writer = pd.ExcelWriter('b.xlsx', engine='openpyxl')
df2.to_excel(writer, "Sheet1", startcol=7,startrow=6)
writer.save()
However this code deletes the older cell values.
解决方案
I was not able to do what was asked by me in the question by using pandas, but was able to solve it by using Openpyxl.
I will write few code snippets which would help in achieving what was asked.
import openpyxl
srcfile = openpyxl.load_workbook('docname.xlsx',read_only=False, keep_vba= True)#to open the excel sheet and if it has macros
sheetname = srcfile.get_sheet_by_name('sheetname')#get sheetname from the file
sheetname['B2']= str('write something') #write something in B2 cell of the supplied sheet
sheetname.cell(row=1,column=1).value = "something" #write to row 1,col 1 explicitly, this type of writing is useful to write something in loops
srcfile.save('newfile.xlsm')#save it as a new file, the original file is untouched and here I am saving it as xlsm(m here denotes macros).
So Openpyxl writes to a purticular cell, without touching the other sheets,cells etc.
It basically writes to a new file respecting the properties of the original file
博客围绕向已有数据的Excel特定单元格写入文本展开。尝试用pandas写入时会删除原有单元格值,未能达成目标。最终使用Openpyxl解决问题,给出代码示例,可在不影响其他单元格和工作表的情况下,将内容写入指定单元格,并保存为新文件。
1699

被折叠的 条评论
为什么被折叠?



