Write values to a particular cell in a sheet in pandas in python
<p>I have an excel sheet, which already has some values in some cells.</p>

<p>For ex :- </p>

<pre><code>        A      B      C      D
1      val1   val2          val3
2             valx   valy        
</code></pre>

<p><strong>I want pandas to write to specific cells without touching any other cells,sheet etc</strong></p>

<p>This is the code i tried.</p>

<pre><code>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()
</code></pre>

<p>However this code deletes the older cell values.</p>

<p>I have reffered to :- <a href="http://stackoverflow.com/questions/20219254/how-to-write-to-an-existing-excel-file-without-overwriting-data-using-pandas">How to write to an existing excel file without overwriting data (using pandas)?</a>
but this solution does not work.</p>

<p>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 <code>Openpyxl</code>. </p>

<p>I will write few code snippets which would help in achieving what was asked.</p>

<pre><code>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).
</code></pre>

<p><strong>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</strong></p>

python excel pandas