![](/img/trans.png)
[英]How to write to an existing excel file without overwriting data (using pandas)?
[英]How can I write json data in an existing excel by overwriting in a sheet using pandas?
我有一些樣本 json 數據,格式如下:
{"VM": {"0": "v1", "1": "v2", "2": "v3", "3": "v4"},
"Size in TB": {"0": "112", "1": "100", "2": "123", "3": "109"},
"state": {"0": "ON", "1": "OFF", "2": "OFF", "3": "ON"}}
我想通過覆蓋現有工作表將此數據存儲在現有 excel 文件中。 我知道我將把這個 json 數據轉換為 excel 工作表的長期方法,然后我可以將新的 excel 復制到現有工作表。
import pandas as pd
json_data = pd.read_json(r'C:\Users\XYZ\data.json')
datafrme = pd.DataFrame(json_data)
datafrme.to_excel('C:/Users/XYZ/OutputExcelFileWithoutIndex.xlsx',index=False)
現在這個新的 excel 文件可以粘貼到現有的文件中。
from openpyxl import load_workbook
wb = load_workbook(r'C:\Users\XYZ\OutputExcelFileWithoutIndex.xlsx',data_only=True)
wb2 =load_workbook(r'C:\Users\XYZ\output.xlsx')
sheet1=wb["Sheet1"]
sheet2=wb2["Sheet5"]
for i in range(1,sheet1.max_row+1):
for j in range(1,sheet1.max_column+1):
sheet2.cell(row=i,column=j).value=sheet1.cell(row=i,column=j).value
我們有什么直接的方法可以直接復制現有 excel 中的 json 數據嗎?
要將df
直接寫入現有 Excel 文件中的工作表,您可以編寫以下內容:
df_json = pd.read_json(r'C:\Users\XYZ\data.json')
# `mode='a' stands for "append', `if_sheet_exists='replace'` overwrites entire sheet,
# if sheet does not yet exist, it will be created
with pd.ExcelWriter(r'C:\Users\XYZ\output.xlsx', mode='a',
if_sheet_exists='replace', engine='openpyxl') as writer:
df_json.to_excel(writer, sheet_name='Sheet1', index=None)
結果:
如果您不喜歡標准(索引和) header 格式, df.columns
移至df
的第一行,並添加header=None
。 像這樣:
with pd.ExcelWriter(r'C:\Users\XYZ\output.xlsx', mode='a',
if_sheet_exists='replace', engine='openpyxl') as writer:
df_json.T.reset_index().T.to_excel(writer, sheet_name='Sheet2',
index=None, header=None)
結果:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.