openpyx追加写入
用openpyxl,循环写入数据,符合条件就写入B列,如何实现接着写入下一行?不能用ws['A'+str(n+1)] 不能用ws['A'+str(n+1)]。。 什么意思,要求不能用,还是不会用? 阿奇_o 发表于 2021-4-17 19:16不能用ws['A'+str(n+1)]。。 什么意思,要求不能用,还是不会用?
因为符合条件的数据才追加写入,不是每次循环都有符合条件的数据,如果用ws['A'+str(n+1)],就会出现不符合条件时,表格n+1行是空行 a350101 发表于 2021-4-17 19:26
因为符合条件的数据才追加写入,不是每次循环都有符合条件的数据,如果用ws['A'+str(n+1)],就会出现不符合 ...
代码呢?show me the code 阿奇_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()
这是我写的,不符合条件的时候就不写入表,就出现了空行 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等对象和变量 以参数形式传入,或直接写到函数里。 a350101 发表于 2021-4-17 19:26
因为符合条件的数据才追加写入,不是每次循环都有符合条件的数据,如果用ws['A'+str(n+1)],就会出现不符合 ...
不会的,我猜你有一句代码 n += 1
把这句代码放在 if 条件里面不要放在外边
这样只有满足 if 条件才会写入,才会执行 n +=1 qq1151985918 发表于 2021-4-19 16:35
不会的,我猜你有一句代码 n += 1
把这句代码放在 if 条件里面不要放在外边
这样只有满足 if 条件才会 ...
的确 有一句代码 n += 1.因为有500多行,所以不方便复制进来.我用了str(ws.max_row+1)觉得不应该出现空行,但出现了,我也不明白.试了好几种方法,快崩溃了.用ws['A'+str(n+1)]执行了很多次,因为不合条件的不写入,所以不写入时就变成了空行 阿奇_o 发表于 2021-4-19 16:26
ws_balanced 是在自定义函数hexie的内部,属于局部变量,要确保它用上你工作表对象。
否则,你执行一百 ...
ws_balanced在前面定义了全局变量..因为有代码 500多行,所以不方便复制进来.谢谢指点 a350101 发表于 2021-4-19 18:33
ws_balanced在前面定义了全局变量..因为有代码 500多行,所以不方便复制进来.谢谢指点
500多行?哈哈,不乱才怪呢。
随你,人生总要折腾折腾……
阿奇_o 发表于 2021-4-19 19:13
500多行?哈哈,不乱才怪呢。
随你,人生总要折腾折腾……
爬取10几个网站,提取,比较,入表,挺耗费精力的
页:
[1]