Python自动化办公之大量数据excel的处理

起因:

有一个excel表格,它很大,里边有四千多条数据

image-20211129231508882

要求:将身份证号后8位加上姓名拼音的首字母拼接成一个字符串,作为登录系统的用户名,然后将这些数据导入到数据库中。

首先,在导入数据库之前,需要我们拿到身份证后8位和姓名拼音的首字母,然后将他们拼接在一起写入excel表格中。

这么多数据肯定不能是一行一行自己手动去拼接或者是使用excel处理,除非自己闲的蛋疼

思路其实很简单,下面是写好的代码:

import pypinyin
import xlrd
import xlwt
from pypinyin import Style, lazy_pinyin


def read():
    # 读取内容
    excel = xlrd.open_workbook(r'F:\Python_WorkSpace\学生信息处理\2017级学生数据表.xlsx')
    # print(excel.sheet_names())
    sheet1 = excel.sheet_by_name("Sheet1")  # 打开页签
    excel2 = xlwt.Workbook()
    sheet2 = excel2.add_sheet("Sheet2")
    # print(sheet1)
    nrows = sheet1.nrows  # 获取行数
    ncols = sheet1.ncols  # 获取列数
    print(nrows, ncols)  # 输出行数和列数

    for i in range(0, nrows):
        # 获取年级
        grade = sheet1.cell(i, 0).value
        # 获取专业
        major = sheet1.cell(i, 1).value
        # 获取性别
        sex = sheet1.cell(i, 3).value
        # 获取学号
        stuid = sheet1.cell(i, 4).value
        # 获取学院
        college = sheet1.cell(i, 6).value
        # 获取身份证后8位
        code = sheet1.cell(i, 5).value
        code = str(code)
        code = code[-8:]
        # print(cell)

        # 获取名字拼音首字母
        name = sheet1.cell(i, 2).value
        print(name)
        name1 = ''.join(lazy_pinyin(name, style=pypinyin.FIRST_LETTER))
        # print(name)

        # 拼接id
        id = code + name1
        print(id)

        # 写入excel
        sheet2.write(i, 0, grade)
        sheet2.write(i, 1, major)
        sheet2.write(i, 2, name)
        sheet2.write(i, 3, sex)
        sheet2.write(i, 4, stuid)
        sheet2.write(i, 5, id)
        sheet2.write(i, 6, college)
    excel2.save('test.csv')


if __name__ == '__main__':
    read()

运行结果:

image-20211129232222131

好了,然后就可以直接导入数据库了。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值