a350101 发表于 2021-4-17 19:01:42

openpyx追加写入

用openpyxl,循环写入数据,符合条件就写入B列,如何实现接着写入下一行?不能用ws['A'+str(n+1)]

阿奇_o 发表于 2021-4-17 19:16:36

不能用ws['A'+str(n+1)]。。 什么意思,要求不能用,还是不会用?

a350101 发表于 2021-4-17 19:26:53

阿奇_o 发表于 2021-4-17 19:16
不能用ws['A'+str(n+1)]。。 什么意思,要求不能用,还是不会用?

因为符合条件的数据才追加写入,不是每次循环都有符合条件的数据,如果用ws['A'+str(n+1)],就会出现不符合条件时,表格n+1行是空行

阿奇_o 发表于 2021-4-17 23:12:29

a350101 发表于 2021-4-17 19:26
因为符合条件的数据才追加写入,不是每次循环都有符合条件的数据,如果用ws['A'+str(n+1)],就会出现不符合 ...

代码呢?show me the code

a350101 发表于 2021-4-19 10:53:00

阿奇_o 发表于 2021-4-17 23:12
代码呢?show me the code

def hexie():
    ws_balanced['A' + str(n+1)] = name3
    ws_balanced['B' + str(n+1)] = idcp
    ws_balanced['M' + str(n+1)] = number
    ws_balanced['N' + str(n+1)] = numberEnd_3#
if n>2:#针对3个共案避免写入2个的算法
      if ws_balanced['A' + str(n)].value != name3 and ws_balanced['A' + str(n-1)].value != name3:##
            hexie()

这是我写的,不符合条件的时候就不写入表,就出现了空行

阿奇_o 发表于 2021-4-19 16:26:23

a350101 发表于 2021-4-19 10:53
def hexie():
    ws_balanced['A' + str(n+1)] = name3
    ws_balanced['B' + str(n+1)] = idcp


ws_balanced 是在自定义函数hexie的内部,属于局部变量,要确保它用上你工作表对象。
否则,你执行一百遍hexie,也不会写进数据。

解决办法:将工作表ws等对象和变量 以参数形式传入,或直接写到函数里。

qq1151985918 发表于 2021-4-19 16:35:16

a350101 发表于 2021-4-17 19:26
因为符合条件的数据才追加写入,不是每次循环都有符合条件的数据,如果用ws['A'+str(n+1)],就会出现不符合 ...

不会的,我猜你有一句代码 n += 1
把这句代码放在 if 条件里面不要放在外边
这样只有满足 if 条件才会写入,才会执行 n +=1

a350101 发表于 2021-4-19 18:31:22

qq1151985918 发表于 2021-4-19 16:35
不会的,我猜你有一句代码 n += 1
把这句代码放在 if 条件里面不要放在外边
这样只有满足 if 条件才会 ...

的确 有一句代码 n += 1.因为有500多行,所以不方便复制进来.我用了str(ws.max_row+1)觉得不应该出现空行,但出现了,我也不明白.试了好几种方法,快崩溃了.用ws['A'+str(n+1)]执行了很多次,因为不合条件的不写入,所以不写入时就变成了空行

a350101 发表于 2021-4-19 18:33:22

阿奇_o 发表于 2021-4-19 16:26
ws_balanced 是在自定义函数hexie的内部,属于局部变量,要确保它用上你工作表对象。
否则,你执行一百 ...

ws_balanced在前面定义了全局变量..因为有代码 500多行,所以不方便复制进来.谢谢指点

阿奇_o 发表于 2021-4-19 19:13:26

a350101 发表于 2021-4-19 18:33
ws_balanced在前面定义了全局变量..因为有代码 500多行,所以不方便复制进来.谢谢指点

500多行?哈哈,不乱才怪呢。

随你,人生总要折腾折腾……

a350101 发表于 2021-4-19 20:08:50

阿奇_o 发表于 2021-4-19 19:13
500多行?哈哈,不乱才怪呢。

随你,人生总要折腾折腾……

爬取10几个网站,提取,比较,入表,挺耗费精力的
页: [1]
查看完整版本: openpyx追加写入