以下代码在第一次创建选项卡x1和x2并填充数据时正确运行。再次执行新数据时,它不会检查选项卡是否已存在,并会添加新的错误选项卡x11和x21。
import pandas as pd
import numpy as np
from openpyxl import load_workbook
import os
filename = os.path.dirname(os.path.abspath(__file__))+ '\\Test_excel.xlsx' # path to current directory adding file name
book = load_workbook(filename)
writer = pd.ExcelWriter(filename, engine='openpyxl')
writer.book = book
x1 = np.random.randn(10, 4)
df1 = pd.DataFrame(x1)
x2 = np.random.randn(20, 2)
df2 = pd.DataFrame(x2)
df1.to_excel(writer, sheet_name = 'x1')
df2.to_excel(writer, sheet_name = 'x2')
writer.save()
writer.close()
如果选项卡已经存在,我需要它来覆盖现有的选项卡数据,否则创建选项卡。有什么想法吗?
答案 0 :(得分:0)
您问了一个问题,我也将很快在我自己的项目中遇到。一种解决方案是查找工作表并使用read_excel()引发的异常。如果没有例外,则该工作表存在,因此将其删除。这是我刚刚在Jupiter上尝试过的代码:
from xlrd import XLRDError
try:
df = pd.read_excel( writer, sheet_name='x1')
except XLRDError:
print ("No sheet x1 found")
else:
print ("Removing sheet")
del book['x1']
答案 1 :(得分:0)
找出Excel文件中是否存在工作表的最快方法可能是使用openpyxl的只读模式。
PUT music/_doc/1?refresh
{
"suggest" : {
"input": [ "Nevermind", "Nirvana" ],
"weight" : 34
}
}
为完全控制使用数据框,openpyxl还提供了一些实用程序,可让您准确地将数据框放置和格式化为所需位置。