鱼C论坛

 找回密码
 立即注册
查看: 1392|回复: 8

[已解决]把原表的贷方数,在新表中变为负数表示

[复制链接]
发表于 2020-9-6 21:52:35 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
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


我的目的是想  把原表的 贷方数,在新表中 变为负数 表示。请老师们指点一下怎么改。感谢!
最佳答案
2020-9-6 22:55:19
4、往单元格内写入内容
  worksheet.write(0, 0, label = 'Row 0, Column 0 Value')
感觉你没写错
nws.write(m, 2, ws.cell_value(n, 8)*(-1))
会不会是因为多加了个括号的原因,之前我说错了,你那不是后面少个),是前面多了个(
再试试
还不行的话,就给个数据吧,否则不好运行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-9-6 22:12:16 | 显示全部楼层
    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下面的代码,后面少了个括号
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-6 22:12:59 | 显示全部楼层
如果用的是pycharm或者VScode来写的话,应该会有错误提示的啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-9-6 22:46:11 | 显示全部楼层
疾风怪盗 发表于 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

麻烦你再帮我看看,谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-9-6 22:47:19 | 显示全部楼层
疾风怪盗 发表于 2020-9-6 22:12
如果用的是pycharm或者VScode来写的话,应该会有错误提示的啊

就是没有明确指出错误,我又是新手,所以不知道错在哪里了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-6 22:55:19 | 显示全部楼层    本楼为最佳答案   
4、往单元格内写入内容
  worksheet.write(0, 0, label = 'Row 0, Column 0 Value')
感觉你没写错
nws.write(m, 2, ws.cell_value(n, 8)*(-1))
会不会是因为多加了个括号的原因,之前我说错了,你那不是后面少个),是前面多了个(
再试试
还不行的话,就给个数据吧,否则不好运行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-6 23:05:57 | 显示全部楼层
我个人也喜欢操控excel,但是目前还是vba体验感绝佳,速度贼快。如果用python,我建议你用win32com来操控excel,性能据说最好,而且功能是最全的,几乎所有excel的功能都可以调用。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-9-7 07:49:06 | 显示全部楼层
本帖最后由 月亮斗斗 于 2020-9-7 07:50 编辑
月亮斗斗 发表于 2020-9-7 07:47
辅助余额表
期间:2020.01-2020.09       
【科  目:其他应收款/职工借款】                               


老师,确实是前面多了个括号,谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-9-7 08:05:45 | 显示全部楼层
额..额... 发表于 2020-9-6 23:05
我个人也喜欢操控excel,但是目前还是vba体验感绝佳,速度贼快。如果用python,我建议你用win32com来操控ex ...

我才开始学习python,以前也没有学过程序,我去试试,谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-18 16:55

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表