数据是这样的:
准备一下数据表
import xlwings as xw
app = xw.App(visible=True, add_book=False)
workbook = app.books.open("部门业绩-模板的副本.xlsx")
sheet = workbook.sheets[0]
有问题的读法
sheet.range("A1").expand().value
输出为:
['部门:{dept}', '收入', '支出', '结余']
可以看到缺少了第二列,原因是A2这里是None,没做很好的处理。
修复的读法1:
sheet.used_range.value
直接会输出:
[['部门:{dept}', None], ['收入', 100.0], ['支出', 300.0], ['结余', 200.0]]
已经解决了。
但是,used_range其实不会从A1开始的,那么可以做修正
修复的方法2:
last_cell = sheet.used_range.last_cell
sheet.range((1, 1), (last_cell.row, last_cell.column)).value
输出:
[['部门:{dept}', None], ['收入', 100.0], ['支出', 300.0], ['结余', 200.0]]
本文章的解法,来自xlwings的源码:
xlwings.pro.reports.main.render_template