最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • python下如何处理excel表格

    正文概述    2020-07-09   187

    python下如何处理excel表格

    xlrd模块

    xlrd是python中一个第三方的用于读取excle表格的模块,很多企业在没有使用计算机管理前大多使用表格来管理数据,所以导入表格还是非常常用的!

    安装xlrd

    pip install xlrd

    excel结构分析

    一个excle表格包含多个sheet

    一个sheet中包含多行多列

    每个单元格具备唯一的行号和列号

    常用函数

    import xlrd
    # 读取文件
    work_book = xlrd.open_workbook("/Users/jerry/Desktop/公司机密数据.xlsx")
    # 选取一个表
    # 获取所有所有表格名称
    print(work_book.sheet_names())
    # 选择第2个  索引从0开始
    sheet = work_book.sheet_by_index(1)
    # 表格名称
    print(sheet.name)
    # 行数
    print(sheet.nrows)
    # 列数
    print(sheet.ncols)
    #批量读取行数据
    # 取出第6行的全部内容包含数据类型
    print(sheet.row(6))
    # 取出第6行的内容包含数据类型 从第3列开始获取
    print(sheet.row_slice(6,start_colx=3))
    # 取出第6行的内容包含数据类型 从第3列开始获取
    print(sheet.row_slice(6,start_colx=4,end_colx=5))
    # 获取该行所有数据类型 一数字表示
    # print(sheet.row_types(6))
    # print(sheet.row_values(6))
    # 单元格的处理
    print(sheet.cell(0,0).value) # 取值
    print(sheet.cell(0,0).ctype) # 取类型
    print(sheet.cell_value(2,0)) # 直接取值
    print(sheet.row(0)[0]) # 先取行再取单元格
    print(sheet.col(0)) # 第0列所有数据
    print(sheet.col(0)) # 先取列再取单元格
    print(sheet.cell_type(0,0))
    # 单元格位置转换
    print(xlrd.cellname(2,1))
    print(xlrd.cellnameabs(0,2))
    print(xlrd.colname(5))
    # 时间类型转换
    # print(sheet.cell(6,5).value)
    # print(xlrd.xldate_as_datetime(sheet.cell(6,5).value,1))

    案例:

    读取一个报价单 其第二个sheet包含合并单元格

    文件地址:https://share.weiyun.com/5GaLY2m

    import xlrd
    sheet = xlrd.open_workbook("报价单.xlsx").sheet_by_index(1)
    def get_text(row,col):
        # 判断该坐标是否是被合并的单元格    合并单元格的数据都在合并区域的第一个位置 
        for ces in sheet.merged_cells:
            if (row >= ces[0] and row < ces[1]) and (col >= ces[2] and col < ces[3]):
                return sheet.cell(ces[0],ces[2]).value # 取出合并区域的第一个数据
        return sheet.cell(row,col).value #正常取出对应数据
    keys = sheet.row_values(1) # 获取所有的列标题
    data = []
    for row in range(2,sheet.nrows):
        dic = {}
        for col in range(sheet.ncols):
            k = keys[col] #确定key
            res = get_text(row,col)
            dic[k] = res # 确定值 并存储
        data.append(dic)
    print(data)
    # 序列化为json
    import json
    json.dump(data,open("test.json","wt"),ensure_ascii=False)

    xlwt模块

    是python中一个第三方的用于写入excle数据到表格的模块

    用代码来编写exlce是非常低效的 所以该模块了解即可。

    相关推荐:《Python视频教程》

    import xlwt
    # 创建工作簿
    work = xlwt.Workbook()
    # 创建一个表
    sheet = work.add_sheet("员工信息数据")
    #创建一个字体对象
    font = xlwt.Font()
    font.name = "Times New Roman" # 字体名称
    font.bold = True # 加粗
    font.italic = True # 斜体
    font.underline = True # 下划线
    #创建一个样式对象
    style = xlwt.XFStyle()
    style.font = font
    # 写入标题
    for k in keys:
        sheet.write(0,keys.index(k),k,style)
    # 写入数据
    for i in infos:
        for k in keys:
            sheet.write(1 + infos.index(i),keys.index(k),label = i[k])
    # 保存至文件
    work.save("test.xls")

    python下如何处理excel表格

    import xlrd
    import pymysql
    # 读取文件
    work_book = xlrd.open_workbook("/xxx/xxx.xlsx")
    # 选取一个表
    sheet = work_book.sheet_by_index(0)
    # 遍历表格数据
    datas = []
    for row in range(1,sheet.nrows):
        temp_list =[]
        for col in range(sheet.ncols):
            value = sheet.cell_value(row,col)
            temp_list.append(value)
        datas.append(temp_list)
    # 打开数据库连接
    db = pymysql.connect(host='localhost', port=3306,
                         user='username', passwd='password', db='database_name', charset='utf8')
    # 使用cursor()方法获取操作游标
    cursor = db.cursor()
    # SQL 插入语句
    sql = "INSERT INTO SHOP(shop_code, shop_name, month) VALUES (%s,%s,%s)"
    try:
        # 执行sql语句
        cursor.executemany(sql, datas)
        # 提交到数据库执行
        db.commit()
    except :
        # 如果发生错误则回滚
        db.rollback()
    # 关闭游标
    cursor.close()
    # 关闭数据库连接
    db.close()

    起源地下载网 » python下如何处理excel表格

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元