鱼C论坛

 找回密码
 立即注册
查看: 3406|回复: 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]

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-4-20 11:43:34 | 显示全部楼层
这样?
def startjsp():
    wb=vb.load_workbook('2月序时账(2).xlsx')
    # 打开活动工作表
    ws=wb.active
    temp = list(ws.rows)[1:]
    rows = temp[0:2] + temp
    for row in rows:
    # 按行 把每列的值 赋值到L数组
        l=[c.value for c in row]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

第一次循环了  一次 但是后来就不会重复
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

是 思路是这样  不会写  哈哈哈
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-4-20 15:02:42 | 显示全部楼层
本帖最后由 SJQ007 于 2022-4-20 15:39 编辑
def startjsp():
    wb=vb.load_workbook('2月序时账(2).xlsx')
    # 打开活动工作表
    ws=wb.active
    temp = list(ws.rows)[1:]
    rows = []
    for i in range(len(temp)):
        if i % 2 != 0:
            rows = rows + temp[i-1]
            rows = rows + temp[i]
            rows = rows + temp[i-1]
            rows = rows + temp[i]
    for row in rows:
    # 按行 把每列的值 赋值到L数组
        l=[c.value for c in row]
很笨的方法
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-4-20 16:20:01 | 显示全部楼层
from itertools import chain, repeat
def startjsp():
    wb=vb.load_workbook('2月序时账(2).xlsx')
    # 打开活动工作表
    ws=wb.active
    temp = list(ws.rows)[1:]
    end = False
    if len(temp) % 2:
        end = temp.pop()
    temp = zip(*(iter(temp),) * 2)
    rows = (chain(*[chain(*repeat(i,2)) for i in temp], [end]) if end 
              else chain(*[chain(*repeat(i,2)) for i in temp]))
    for row in rows:
    # 按行 把每列的值 赋值到L数组
        l=[c.value for c in row]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

raise AttributeError, "Chain has not attribute %s" % ident
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

报错信息贴完整一点
想知道小甲鱼最近在做啥?请访问 -> 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
想知道小甲鱼最近在做啥?请访问 -> 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  ...


我的是
from itertools import chain, repeat

itertools 这个模块是python自带的,不需要去安装它
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-18 17:34

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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