我试图在不删除用户配置的情况下生成 excel。 例如你可以在这里创建
新观点。并保存它。
但是当我用 pandas 或其他任何东西读取 excel 文件并生成 excel 时,“视图”将被删除。
有没有办法可以再次在 python 中创建视图?或者不删除视图?
我查看了其他一些库,如 openpyxl、xlswriter,但我没有找到任何可以做到这一点的选项。
Openpyxl 具有使用工作表视图的功能。我从来没有用过它,所以我不能给你细节。从理论上讲,它可以让您阅读和重建工作表视图。
据我所知,Pandas 不包含该功能。它所拥有的是最近的能力(它也在 openpyxl 中)附加到现有的 Excel 工作簿而不是覆盖。
如果您有一个指向特定工作表的工作表视图,并且正在添加/编辑一个不同的工作表,您可以使用它并且它不应该影响工作表视图。
如果您正在编辑工作表视图指向的工作表,那么您需要使用 Openpyxl 重建视图(但如果对您来说更容易的话,您仍然可以最初使用 Pandas 写入它)。
Pandas 中追加的代码是:
# use ExcelWriter rather than using to_Excel directly in order to give access to the append & replace functions
with pd.ExcelWriter("data.xlsx", engine="openpyxl", mode="a", if_sheet_exists="replace") as writer:
df.to_excel(writer, 'My Data', index=False)
如果您直接使用 openpyxl,那么
workbook.create_sheet(sheet_name)
会将新工作表附加到现有工作簿。
您可能会发现您必须使用 win32com,该模块使您可以访问 vba 在 Excel 中具有的某些功能。不过,Views 的文档似乎很少;我可以很容易地找到这两个地方:
https://learn.microsoft.com/en-us/office/vba/api/excel.window.sheetviews
https://learn.microsoft.com/en-us/office/vba/api/excel.sheetviews
您可以使用模块in2xl。该模块纯粹用于在不更改文件的情况下将数据插入 Excel。 这意味着您的观点不会改变。