将多个sheetExcelSpreadsheet编译成pycel
Compiling a multiple sheet Excel Spreadsheet into pycel
TL;DR - 尝试使用 Pycel
编译 this multi-sheet Pycel tests/fixture spreadsheet(我对捕获 sheet 间依赖关系特别感兴趣)到 Python 代码中
问题
Pycel repository 中的 example/example.py 中有用的 Pycel 示例运行完美并生成方便的 .gexf 图,但是,我无法弄清楚如何编译多 sheet Spreadsheet(在我的用例中,sheet 之间存在可怕的依赖关系!)使用 Pycel。
@Stephen Rauch 在 this Whosebug discussion 中提到 "Pycel does really deal with sheets. It works with cells. Those cells can come from any sheet in the workbook",但是,我在 Pycel 存储库或之前的问题中找不到任何关于此的详细信息。
我试过的
我尝试编译包含在 tests/fixtures/excelcompiler.xlsx 中的 spreadsheet 因为这是 multi-sheet 并且它似乎只针对 Sheet1 编译,因为结果图是空的(Sheet1是空的)。
import pycel
excel = pycel.ExcelCompiler('excelcompiler.xlsx')
excel.plot_graph()
是否可以使用Pycel编译sheet之间的依赖关系?
我目前正在尝试将此 Excel spreadsheet tool1 编译成 Python 用于建模目的2。
1 有关更多详细信息,请参阅 The Irish National Building Energy Rating Assessment
2 运行 不同建筑政策决策 energy/carbon 影响的都柏林范围模拟
TL;DR
Pycel 可以轻松编译多sheet Excel 传播sheet。 Pycel 的函数 pycel.ExcelCompiler
是惰性的,因此实际上不会将 Excel 编译成 Python 直到通过 excel.evaluate('Result!E16')}
明确要求这样做(即评估一些单元格)
详细
我试过了:
excel = pycel.ExcelCompiler(filename='deap.xlsx')
# for viewing in gephi (quicker runtime)
excel.export_to_gexf('deap.gexf')
# or via matplotlib
excel.plot_graph()
我的结果是一张空图。
然后我尝试了(如 pycel 中的示例):
excel = pycel.ExcelCompiler(filename='deap.xlsx')
print(f"TotalDeliveredEnergy is {excel.evaluate('Result!E16')}")
# for viewing in gephi (quicker runtime)
excel.export_to_gexf('deap.gexf')
# or via matplotlib
excel.plot_graph()
这成功了!
换句话说,我的问题是我试图在 Pycel 关系被评估之前绘制它 - Pycel 是惰性的,因此仅在使用 [ 调用时将 Excel 编译为 Python =14=].
TL;DR - 尝试使用 Pycel
编译 this multi-sheet Pycel tests/fixture spreadsheet(我对捕获 sheet 间依赖关系特别感兴趣)到 Python 代码中问题
Pycel repository 中的 example/example.py 中有用的 Pycel 示例运行完美并生成方便的 .gexf 图,但是,我无法弄清楚如何编译多 sheet Spreadsheet(在我的用例中,sheet 之间存在可怕的依赖关系!)使用 Pycel。
@Stephen Rauch 在 this Whosebug discussion 中提到 "Pycel does really deal with sheets. It works with cells. Those cells can come from any sheet in the workbook",但是,我在 Pycel 存储库或之前的问题中找不到任何关于此的详细信息。
我试过的
我尝试编译包含在 tests/fixtures/excelcompiler.xlsx 中的 spreadsheet 因为这是 multi-sheet 并且它似乎只针对 Sheet1 编译,因为结果图是空的(Sheet1是空的)。
import pycel
excel = pycel.ExcelCompiler('excelcompiler.xlsx')
excel.plot_graph()
是否可以使用Pycel编译sheet之间的依赖关系?
我目前正在尝试将此 Excel spreadsheet tool1 编译成 Python 用于建模目的2。
1 有关更多详细信息,请参阅 The Irish National Building Energy Rating Assessment
2 运行 不同建筑政策决策 energy/carbon 影响的都柏林范围模拟
TL;DR
Pycel 可以轻松编译多sheet Excel 传播sheet。 Pycel 的函数 pycel.ExcelCompiler
是惰性的,因此实际上不会将 Excel 编译成 Python 直到通过 excel.evaluate('Result!E16')}
明确要求这样做(即评估一些单元格)
详细
我试过了:
excel = pycel.ExcelCompiler(filename='deap.xlsx')
# for viewing in gephi (quicker runtime)
excel.export_to_gexf('deap.gexf')
# or via matplotlib
excel.plot_graph()
我的结果是一张空图。
然后我尝试了(如 pycel 中的示例):
excel = pycel.ExcelCompiler(filename='deap.xlsx')
print(f"TotalDeliveredEnergy is {excel.evaluate('Result!E16')}")
# for viewing in gephi (quicker runtime)
excel.export_to_gexf('deap.gexf')
# or via matplotlib
excel.plot_graph()
这成功了!
换句话说,我的问题是我试图在 Pycel 关系被评估之前绘制它 - Pycel 是惰性的,因此仅在使用 [ 调用时将 Excel 编译为 Python =14=].