ONE'S 博客

  • 首页
  • 生活
  • 工作
  • 爱好
    • C #
    • javascript
    • Linux
    • PHP编程
    • python
    • thinkphp
    • 旅游风景
    • 电脑网络
    • 脑力运动
    • 瞎编乱造
  • 书籍
  • 经验
  • 健康
  • 交易
  • 时间
  • 作品
  • 小说
ONE'S BLOG
弱水三千 只取一瓢
  1. 首页
  2. 工作感悟
  3. 正文

处理几个表格

2023年2月19日 92点热度 0条评论

朱老师找我帮忙 处理几张表格并将表格数据合并,看起来确实很繁琐。同时python表格处理也确实好久没有使用了。正好拿过来处理下,熟悉下知识。

思路很简单,将几张表全部读入内存 合并成一个列表 ,第二步就是循环列表合并数据  第三步写入保存列表。

半个小时,搞定!检查了下 数据完美。

粘下代码,日后留观。

 

import xlrd
import xlwt
from xlutils.copy import copy

# 思路如下 首先将四张表分别读取 xlrd 版本1.2以上不支持xlsx 这是很不好的
# 将四个结果组合成一个字典
# 3、 将四个字典逐个合并
# 4 保存表格

# 1、 分别将四张表读取到四个不同的变量中
xls_1 = xlrd.open_workbook('1.xls')
xls_2 = xlrd.open_workbook('2.xls')
xls_3 = xlrd.open_workbook('3.xls')
xls_4 = xlrd.open_workbook('4.xls')

sheet1 = xls_1.sheet_by_index(0)
sheet2 = xls_2.sheet_by_index(0)
sheet3 = xls_3.sheet_by_index(0)
sheet4 = xls_3.sheet_by_index(1)
sheet5 = xls_4.sheet_by_index(0)

row1 = sheet1.nrows
row2 = sheet2.nrows
row3 = sheet3.nrows
row4 = sheet4.nrows
row5 = sheet5.nrows

data_all = []


# 写一个函数 完成数据的添加工作
def adddata(sheet1, row1):
    for n in range(1, row1):
        school = sheet1.cell(n, 0).value
        name = sheet1.cell(n, 1).value
        xueduan = sheet1.cell(n, 2).value
        xueke = sheet1.cell(n, 3).value
        cengci = str(sheet1.cell(n, 4).value)
        gongzuoshi = sheet1.cell(n, 5).value
        xuekao = sheet1.cell(n, 6).value
        isgood = sheet1.cell(n, 7).value
        sign = sheet1.cell(n, 8).value
        list = [school, name, xueduan, xueke, cengci, gongzuoshi, xuekao, isgood, sign]
        # //加入列表
        data_all.append(list)


adddata(sheet1, row1)
adddata(sheet2, row2)
adddata(sheet3, row3)
adddata(sheet4, row4)
adddata(sheet5, row5)

newlist = []
# 进行每行数据比对增加信息

for i in data_all:
    # 检查是否存在同个人信息
    tiao = False
    if len(newlist) > 0:
        for newdata in newlist:
            if i[0] == newdata[0] and i[1] == newdata[1] and i[2] == newdata[2] and i[3] == newdata[3]:
                if i[5] != "":
                    newdata[5] = i[5]
                elif i[6] != "":
                    newdata[6] = i[6]
                elif i[7] != "":
                    newdata[7] = i[7]
                elif i[8] != "":
                    newdata[8] = i[8]
                elif i[4] != "":
                    newdata[4] = i[4]
                tiao = True
                continue
        if tiao == False:
            newlist.append(i)
    else:
        newlist.append(i)
    print(len(newlist))

new_xls = copy(xls_1)
new_sheet = new_xls.get_sheet(0)
n = 1  # n 为行
for v in newlist:
    new_sheet.write(n, 0, v[0])
    new_sheet.write(n, 1, v[1])
    new_sheet.write(n, 2, v[2])
    new_sheet.write(n, 3, v[3])
    new_sheet.write(n, 4, v[4])
    new_sheet.write(n, 5, v[5])
    new_sheet.write(n, 6, v[6])
    new_sheet.write(n, 7, v[7])
    new_sheet.write(n, 8, v[8])
    n = n + 1
new_xls.save('10.xls')
print('well done!')

 

标签: 暂无
最后更新:2023年2月19日

飞翔的mouse

这个人很懒,什么都没留下

点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

飞翔的mouse

这个人很懒,什么都没留下

分类
  • C #
  • javascript
  • Linux
  • PHP编程
  • python
  • thinkphp
  • 书籍摘录
  • 健康医药
  • 工作感悟
  • 投资理财
  • 旅游风景
  • 时间管理
  • 未分类
  • 生活情感
  • 电脑网络
  • 瞎编乱造
  • 经验分享
  • 脑力运动
  • 软件作品
最新 热点 随机
最新 热点 随机
99%是钱的问题 有些惆怅和反复 处理几个表格 抖狗视频音乐下载工具 聚焦小程序开发 关于windows照片查看器显示内存不足
Js实现复选框的全选、全不选反选功能代码实例 二月寒冬五月春 php解压缩zip和rar压缩包文件的方法 爸爸再也背不动你 PHP获取网页内容的几种方法 《与自己和解》摘抄
最近评论
飞翔的mouse 发布于 11 个月前(11月12日) 好像没!!!
涛涛 发布于 11 个月前(11月11日) 中了没有?
daxi 发布于 5 年前(11月04日) 学无止境,认真拜读!
飞翔的mouse 发布于 6 年前(06月15日) 在手机浏览的情况下,文章内的图片拉伸我的站有问题,你的站没有。求解决方案呀MJ
M.J 发布于 6 年前(06月15日) @飞翔的mouse 哈哈哈哈,谢谢支持,我这程序猿
标签聚合
学习 php 计划 会计证 学习计划 工作 从业资格 生活

COPYRIGHT © 2023 ONE'S 博客. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

苏ICP备11089789号-4

苏公网安备 320722020186