把原表的贷方数,在新表中变为负数表示
import xlrd # 导入 xlrd模块from xlutils.copy import copy # 导入xlutils 中的复制模块
wb = xlrd.open_workbook("职工借款.xls") # 读取工作簿
# ws = wb.sheet_names() # 读取工作簿下的所有工作表对象
ws = wb.sheet_by_name('9月') # 读取工作簿下的指定工作表对象
nwb = copy(wb) # 复制工程簿
nws = nwb.add_sheet('复制表') # 新建工程表 表名为 复制表
n,m = 8,0 # 初始化变量
while n<ws.nrows-1: # 开始循环数据
n += 1 # 累加 n 变量
(ws.cell_value(n, 0), ws.cell_value(n, 7), ws.cell_value(n, 8)) # 读取三列数据
m += 1 # 累加 m 变量
nws.write(m,0,ws.cell_value(n,0)) # 写入姓名列
nws.write(m, 1, ws.cell_value(n, 7)) # 写入方向列
if ws.cell_value(n, 7) = '贷': # 如果第七列为 贷
nws.write((m, 2, ws.cell_value(n, 8)*(-1)) # 则在写入余额时 乘以-1
else: # 否则
nws.write(m, 2, ws.cell_value(n, 8)) # 写入余额
nws.write(0,0,'姓名') # 写入表头
nws.write(0,1,'方向') # 写入表头
nws.write(0,2,'余额') # 写入表头
nwb.save('贷方数.xls') # 保存 复制表
*******************************************************************
以下为运行后,出现的提示
D:\Python37\python.exe F:/课程资料/练习用表/20200906-006.py
File "F:/课程资料/练习用表/20200906-006.py", line 15
if ws.cell_value(n, 7) = '贷': # 如果第七列为 贷
^
SyntaxError: invalid syntax
Process finished with exit code 1
我的目的是想把原表的 贷方数,在新表中 变为负数 表示。请老师们指点一下怎么改。感谢!
if ws.cell_value(n, 7) == '贷': # 如果第七列为 贷
nws.write((m, 2, ws.cell_value(n, 8)*(-1))) # 则在写入余额时 乘以-1
else: # 否则
nws.write(m, 2, ws.cell_value(n, 8))
这段好像有错误,if判断是否相等用的是==
if下面的代码,后面少了个括号 如果用的是pycharm或者VScode来写的话,应该会有错误提示的啊 疾风怪盗 发表于 2020-9-6 22:12
这段好像有错误,if判断是否相等用的是==
if下面的代码,后面少了个括号
老师,我改了:
if ws.cell_value(n, 7) == '贷': # 如果第七列为 贷
nws.write((m, 2, ws.cell_value(n, 8)*(-1))) # 则在写入余额时 乘以-1
else: # 否则
nws.write(m, 2, ws.cell_value(n, 8)) # 写入余额
****************************************************************
电脑提示:
D:\Python37\python.exe F:/课程资料/练习用表/20200906-006.py
Traceback (most recent call last):
File "F:/课程资料/练习用表/20200906-006.py", line 16, in <module>
nws.write((m, 2, ws.cell_value(n, 8)*(-1))) # 则在写入余额时 乘以-1
TypeError: write() missing 1 required positional argument: 'c'
Process finished with exit code 1
麻烦你再帮我看看,谢谢 疾风怪盗 发表于 2020-9-6 22:12
如果用的是pycharm或者VScode来写的话,应该会有错误提示的啊
就是没有明确指出错误,我又是新手,所以不知道错在哪里了{:5_110:} 4、往单元格内写入内容
worksheet.write(0, 0, label = 'Row 0, Column 0 Value')
感觉你没写错
nws.write(m, 2, ws.cell_value(n, 8)*(-1))
会不会是因为多加了个括号的原因,之前我说错了,你那不是后面少个),是前面多了个(
再试试
还不行的话,就给个数据吧,否则不好运行 我个人也喜欢操控excel,但是目前还是vba体验感绝佳,速度贼快。如果用python,我建议你用win32com来操控excel,性能据说最好,而且功能是最全的,几乎所有excel的功能都可以调用。 本帖最后由 月亮斗斗 于 2020-9-7 07:50 编辑
月亮斗斗 发表于 2020-9-7 07:47
辅助余额表
期间:2020.01-2020.09
【科目:其他应收款/职工借款】
老师,确实是前面多了个括号,谢谢 额..额... 发表于 2020-9-6 23:05
我个人也喜欢操控excel,但是目前还是vba体验感绝佳,速度贼快。如果用python,我建议你用win32com来操控ex ...
我才开始学习python,以前也没有学过程序,我去试试,谢谢
页:
[1]