鱼C论坛

 找回密码
 立即注册
查看: 3796|回复: 10

求助excel遍历问题

[复制链接]
发表于 2022-4-20 11:33:12 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 cancry 于 2022-4-20 14:13 编辑

有这样的情况,我需要按行 从第二行开始遍历excel 表格
正常的顺序就是2,3,4,5,6.......... 但是我现在需要 2行3行执行完以后 重复执行2行3行  再到4行 5行  如此类推
补充一下:应该这样2 3 重复2 3到 45  然后45重复45到67   67重复67到89这样

请问代码怎么写

def startjsp():
    wb=vb.load_workbook('2月序时账(2).xlsx')
    # 打开活动工作表
    ws=wb.active
        for row in list(ws.rows)[1:]:
    # 按行 把每列的值 赋值到L数组
        l=[c.value for c in row]

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2022-4-20 11:43:34 | 显示全部楼层
这样?
  1. def startjsp():
  2.     wb=vb.load_workbook('2月序时账(2).xlsx')
  3.     # 打开活动工作表
  4.     ws=wb.active
  5.     temp = list(ws.rows)[1:]
  6.     rows = temp[0:2] + temp
  7.     for row in rows:
  8.     # 按行 把每列的值 赋值到L数组
  9.         l=[c.value for c in row]
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-4-20 14:09:58 | 显示全部楼层

第一次循环了  一次 但是后来就不会重复
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-4-20 14:21:41 | 显示全部楼层
提供一个思路:
把23456这个序列奇数-1偶数不变,就变成224466,循环里读i和i+1行,就能实现232345456767
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-4-20 14:29:22 | 显示全部楼层
SJQ007 发表于 2022-4-20 14:21
提供一个思路:
把23456这个序列奇数-1偶数不变,就变成224466,循环里读i和i+1行,就能实现232345456767

是 思路是这样  不会写  哈哈哈
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-4-20 15:02:42 | 显示全部楼层
本帖最后由 SJQ007 于 2022-4-20 15:39 编辑
  1. def startjsp():
  2.     wb=vb.load_workbook('2月序时账(2).xlsx')
  3.     # 打开活动工作表
  4.     ws=wb.active
  5.     temp = list(ws.rows)[1:]
  6.     rows = []
  7.     for i in range(len(temp)):
  8.         if i % 2 != 0:
  9.             rows = rows + temp[i-1]
  10.             rows = rows + temp[i]
  11.             rows = rows + temp[i-1]
  12.             rows = rows + temp[i]
  13.     for row in rows:
  14.     # 按行 把每列的值 赋值到L数组
  15.         l=[c.value for c in row]
复制代码

很笨的方法
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-4-20 16:20:01 | 显示全部楼层
  1. from itertools import chain, repeat
  2. def startjsp():
  3.     wb=vb.load_workbook('2月序时账(2).xlsx')
  4.     # 打开活动工作表
  5.     ws=wb.active
  6.     temp = list(ws.rows)[1:]
  7.     end = False
  8.     if len(temp) % 2:
  9.         end = temp.pop()
  10.     temp = zip(*(iter(temp),) * 2)
  11.     rows = (chain(*[chain(*repeat(i,2)) for i in temp], [end]) if end
  12.               else chain(*[chain(*repeat(i,2)) for i in temp]))
  13.     for row in rows:
  14.     # 按行 把每列的值 赋值到L数组
  15.         l=[c.value for c in row]
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-4-20 17:13:39 | 显示全部楼层

raise AttributeError, "Chain has not attribute %s" % ident
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-4-20 17:19:36 | 显示全部楼层
cancry 发表于 2022-4-20 17:13
raise AttributeError, "Chain has not attribute %s" % ident

报错信息贴完整一点
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-4-20 17:37:46 | 显示全部楼层
isdkz 发表于 2022-4-20 17:19
报错信息贴完整一点

Traceback (most recent call last):
  File "E:\python\自动做账\main.py", line 11, in <module>
    import chain
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python39\lib\site-packages\chain.py", line 169
    raise AttributeError, "Chain has not attribute %s" % ident
                        ^
SyntaxError: invalid syntax
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-4-20 17:39:39 | 显示全部楼层
本帖最后由 isdkz 于 2022-4-20 17:41 编辑
cancry 发表于 2022-4-20 17:37
Traceback (most recent call last):
  File "E:\python\自动做账\main.py", line 11, in
    import  ...


我的是

  1. from itertools import chain, repeat
复制代码


itertools 这个模块是python自带的,不需要去安装它
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-29 04:22

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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