如何用Python实现Excel单元格逐格读写操作?
用Python实现Excel逐单元格读写操作
你的需求是逐行读取Excel中Income列的单元格,计算10%税额后写入对应Tax列,用xlwings可以完全模拟VBA的逐单元格操作,以下是修正后的完整代码:
import xlwings as xw # 打开Excel工作簿 wb = xw.Book("Database.xlsx") ws = wb.sheets["Sheet1"] # 获取数据总行数(从第2行开始到最后一行有数据的行) last_row = ws.range("A2").end('down').row # 逐行循环处理 for row in range(2, last_row + 1): # 读取Income列(第3列)的单元格值 income_str = ws.cells(row, 3).value # 去除千分位逗号并转换为数值 income = float(income_str.replace(',', '')) # 计算10%的税额 tax = income * 0.1 # 写入Tax列(第4列)的对应单元格 ws.cells(row, 4).value = tax # 保存并关闭工作簿 wb.save("Database.xlsx") wb.close()
关键说明:
- 单元格引用:用
ws.cells(row, col)可以像VBA一样通过行号列号定位单元格,比如第2行第3列就是cells(2,3),和你熟悉的VBA写法一致。 - 千分位处理:Income列的值带逗号,需要先用
replace(',', '')去掉逗号再转成数值,否则无法计算。 - 循环范围:通过
ws.range("A2").end('down').row自动获取最后一行数据的行号,避免手动指定行数,更灵活。 - 资源释放:最后加上
wb.close()可以关闭Excel进程,避免后台残留。
内容的提问来源于stack exchange,提问作者Add
相关产品推荐
相关产品推荐

