返回顶部
首页 > 资讯 > 后端开发 > Python >Python(xlrd、xlwt模块)操
  • 898
分享到

Python(xlrd、xlwt模块)操

模块Pythonxlrd 2023-01-30 23:01:34 898人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

关于python的xlrd、xlwt模块的使用,推介另一位博客主的博文:https://www.cnblogs.com/zhoujie/p/Python18.html 这篇里面有详细介绍这两个模块的基本用法。 以下是关于我运用xlrd、

关于python的xlrd、xlwt模块的使用,推介另一位博客主的博文:https://www.cnblogs.com/zhoujie/p/Python18.html

这篇里面有详细介绍这两个模块的基本用法。

以下是关于我运用xlrd、xlwt模块的一个实例。需求如下:

 

需求是用宏去做的,但是因为时间比较紧急,我用了1天去“研究”怎么用宏去写,发现作为一个VBA入门者,比较难短时间学习并解决这个问题,因为VBA的可读性比较差的缘故吧。

于是我选择用Python去实现。


 

这个需求还算比较简单,主要是分为“读”和“写”两部分。

(一)读取部分

 从excel文件“测试题.xls”里面的“表格数据1”,“表格数据2”,“数据透视表”三个sheet中提取区域和各区域的店铺,并要求同一区域内的店铺名称不重复。

需求也很简单,就是“区域”和“店铺名称”两个元素进行去重和读取。

1.读取思路

1.1读取范围

读取范围主要是从“表格数据1”,“表格数据2”,“数据透视表”三个sheet中提取区域和各区域的店铺,如下:

三个表都是从A1,B1或者A2,B2开始,但是表的末尾有些其他文字注释,于是我用的判断条件设为是否中文和是否为空值。

#构造一个函数判断是否中文
def is_Chinese(Word):
    for ch in word:
        if '\u4e00' <= ch <= '\u9fff':
            return True
    return False

 

 

1.2去重判断

读取到的数据需要一个临时的“容器”,打算利用单个区域和店铺放到一个元组里面,然后把所有的元组放到一个列表里面。

然后将每个新元组和列表里面的元组对比,看是否已经存在于列表中,从而达到去重的目的。

def read_excel():
    # 打开文件
    workbook = xlrd.open_workbook(r'D:\安装包\测试题.xls')

    #写一个循环体,筛选出不重复的区域和店铺
    #将涉及到区域和店铺的三个sheet中,不重复的区域和店铺名称写入元组内并存于一个列表内
    sheet_name = ['表格数据1','表格数据2','数据透视表']
    tup1 = []
    for j in range(3):
        sheet_source = workbook.sheet_by_name(sheet_name[j])
        nrows = sheet_source.nrows
        for i in range(nrows):
            if is_Chinese(sheet_source.cell(i,0).value) == False and sheet_source.cell(i,0).value != "":
                a = (sheet_source.cell(i,0).value,sheet_source.cell(i,1).value)
                if a not in tup1 :
                    tup1.append(a)
                else:
                    pass
            else:
                 pass

 

 读取完数据,按照它的需求,是要弹出一个提示框的

#python弹出窗口,提示“读取完成!”
    msg.showinfo("Excel_Reading","读取已经完成!")

 

1.3统计店铺数量

“容器”tup1列表里面,放的是原始的数据,需要写个循环,去统计不同区域内的店铺数量。

    #利用将元组转为字典,并统计各个区域的店铺数量
    dict1 = {}
    for i in tup1:
        if i[0] not in dict1.keys():
            dict1[i[0]] = 1
        else:
            dict1[i[0]] += 1

 

 读取部分完成。完整代码如下:

import xlrd
import xlwt
import tkinter.messagebox as msg

def is_Chinese(word):
    for ch in word:
        if '\u4e00' <= ch <= '\u9fff':
            return True
    return False

#读取数据
def read_excel():
    # 打开文件
    workbook = xlrd.open_workbook(r'D:\安装包\测试题.xls')

    #写一个循环体,筛选出不重复的区域和店铺
    #将涉及到区域和店铺的三个sheet中,不重复的区域和店铺名称写入元组内并存于一个列表内
    sheet_name = ['表格数据1','表格数据2','数据透视表']
    tup1 = []
    for j in range(3):
        sheet_source = workbook.sheet_by_name(sheet_name[j])
        nrows = sheet_source.nrows
        for i in range(nrows):
            if is_Chinese(sheet_source.cell(i,0).value) == False and sheet_source.cell(i,0).value != "":
                a = (sheet_source.cell(i,0).value,sheet_source.cell(i,1).value)
                if a not in tup1 :
                    tup1.append(a)
                else:
                    pass
            else:
                 pass

    #python弹出窗口,提示“读取完成!”
    msg.showinfo("Excel_Reading","读取已经完成!")

    #利用将元组转为字典,并统计各个区域的店铺数量
    dict1 = {}
    for i in tup1:
        if i[0] not in dict1.keys():
            dict1[i[0]] = 1
        else:
            dict1[i[0]] += 1
    return (dict1)

 


 

 

 (二)写入部分

需要新建一个Excel,创建一个叫“总表”的sheet,写入标题、表头,以及根据上述的read_excel函数返回的字典,写入内容。

1、样式部分

因为写入函数.write()里面有多个参数是用来设定你写入内容的样式的,所以这里做一个函数,把需要设定的参数做一个封包。

def set_style(height,bold=False):
    style = xlwt.XFStyle()  # 初始化样式
    
    font = xlwt.Font()  # 为样式创建字体
    font.name = 'Times New Roman' 
    font.bold = bold
    font.color_index = 4
    font.height = height
    style.font = font

    alignment = xlwt.Alignment()# 为样式创建居中方式
    alignment.horz = xlwt.Alignment.HORZ_CENTER
    style.alignment = alignment

    
    borders = xlwt.Borders()  # 为样式创建边框
    borders.left = xlwt.Borders.MEDIUM  
    borders.right = xlwt.Borders.MEDIUM  
    borders.top = xlwt.Borders.MEDIUM  
    borders.bottom = xlwt.Borders.MEDIUM  

    borders.left_colour = 0x40 # 边框上色
    borders.right_colour = 0x40
    borders.top_colour = 0x40
    borders.bottom_colour = 0x40
    style.borders = borders

    return style

 

2、写入excel

def write_excel(**dd): #两个**代表输入一个字典作为参数
    f = xlwt.Workbook() #创建工作簿

    '''
    创建第一个sheet:
        sheet1
    '''
    sheet1 = f.add_sheet(u'总表',cell_overwrite_ok=True) #创建sheet

    sheet1.col(1).width = 256 * 20 #调整列宽,256是一个固定的单位

    row1 = [u'区域',u'店铺数量(家)']

    #生成标题
    sheet1.write_merge(0,0,0,1,u'总表',set_style(300,True))

    #生成第二行表头
    for i in range(0,len(row1)):
        sheet1.write(1,i,row1[i],set_style(220,True))

    #写入数据
    i = 2
    for a,b in dd.items():
        if b>=10: #将店铺数量大于10的数据,写入Excel
            sheet1.write(i,0,a,set_style(220))
            sheet1.write(i,1,b,set_style(220))
            i +=1
        else:
            pass

    f.save('总表.xlsx') #保存文件,文件会保存在此Python脚本所在的文件夹内。

 

最后执行:

write_excel(**read_excel())

 

效果图:

 


应该说Python的xlrd、xlwt模块对于Excel的数据读取和写入非常简易方便。但是在使用xlwt时,存在一个问题,就是它无法直接对现有的Excel工作表进行写入,只能新开一个Excel。或者将现有Excel复制一个副本,另存为。

--结束END--

本文标题: Python(xlrd、xlwt模块)操

本文链接: https://lsjlt.com/news/181039.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Python(xlrd、xlwt模块)操
    关于Python的xlrd、xlwt模块的使用,推介另一位博客主的博文:https://www.cnblogs.com/zhoujie/p/python18.html 这篇里面有详细介绍这两个模块的基本用法。 以下是关于我运用xlrd、...
    99+
    2023-01-30
    模块 Python xlrd
  • Python利用xlrd 与 xlwt 模块操作 Excel
    目录Python 操作 Excel打开Excel文件读取数据行的操作获取所有行数据列的操作单元格操作Python 操作 Excel 本篇博客介绍一种 Python 操作 Excel ...
    99+
    2024-04-02
  • python+xlrd+xlwt操作ex
    xlrd(读操作),xlwt(写操作)上述软件下载后,分别解压,之后在cmd命令下分别进入对应的目录中运行python setup.py install如果运行过程中提示缺少setuptools,则先运行python ez_setup.py...
    99+
    2023-01-31
    操作 python xlrd
  • Python如何利用xlrd和xlwt模块操作Excel表格
    目录简介:安装:初始数据:xlrd使用:xlwt使用:xlwt使用示例2:总结 简介: xlrd和xlwt是python的第三方库,xlrd模块实现对excel文件内容读取...
    99+
    2024-04-02
  • Python怎么利用xlrd和xlwt模块操作Excel表格
    这篇文章主要为大家展示了“Python怎么利用xlrd和xlwt模块操作Excel表格”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Python怎么利用xlrd和xlwt模块操作Excel表格”...
    99+
    2023-06-29
  • Python Excel数据处理之xlrd/xlwt/xlutils模块详解
    目录1、模块说明2、xlrd处理3、xlwt处理4、xlutils处理常规的Excel数据处理中,就是对Excel数据文件的读/写/文件对象操作。 通过对应的python非标准库xl...
    99+
    2023-03-21
    Python Excel数据处理模块 Python Excel数据处理 Python Excel
  • Python 使用 Xlrd/xlwt
    Python 处理 Excel,可以使用 xlrd/xlwt 2个模块,使用简单特好上手。xlrd安装1sudo easy_install xlrd # windows 参考http://pypi.python.org/pypi/xlrd简...
    99+
    2023-01-31
    Python Xlrd xlwt
  • Python Excel数据处理之xlrd/xlwt/xlutils模块怎么使用
    常规的Excel数据处理中,就是对Excel数据文件的读/写/文件对象操作。通过对应的python非标准库xlrd/xlwt/xlutils,来实现具体的数据处理业务逻辑。在复杂的Excel业务数据处理中,三兄弟扮演的角色缺一不可。今天我们...
    99+
    2023-05-17
    Python Excel xlutils
  • python—xlwt模块详解
    一、前言 xlwt模块是python中专门用于写入Excel的拓展模块,可以实现创建表单、写入指定单元格、指定单元格样式等人工实现的功能,一句话就是人使用excel实现的功能,这个扩展包都可以实现。 ...
    99+
    2023-09-04
    python excel 自动化办公 xlwt
  • Python自动化操作Excel方法详解(xlrd,xlwt)
    目录一、Python操作Excel 7大库对比二、xlrd 读取excel操作1. 打开文件2. 获取所有表名3. 指定sheet表4. 对sheet表的行操作5. 对sheet表的...
    99+
    2024-04-02
  • python中怎样使用xlrd、xlwt操作excel表格
    这篇文章将为大家详细讲解有关python中怎样使用xlrd、xlwt操作excel表格,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。python操作excel主要用到xlrd和xlwt这两个...
    99+
    2023-06-04
  • 使用Python读取和修改Excel文件(基于xlrd、xlwt和openpyxl模块)
    目录1、使用xlrd模块对xls文件进行读操作1.1 获取工作簿对象1.2 获取工作表对象1.3 获取工作表的基本信息1.4 按行或列方式获得工作表的数据2、使用xlwt模块对xls...
    99+
    2024-04-02
  • Python使用xlrd和xlwt实现自动化操作Excel
    目录一、前言介绍二、安装三、xlrd常用操作1、打开Excel2、查看工作簿中所有sheet 3、选择一个工作表4、获取表格的行数、列数5、获取整行和整列的值6、通过循环读...
    99+
    2024-04-02
  • python读写修改Excel之xlrd&xlwt&xlutils
    py读写修改常用的三种方法 xlwt:用于写入 Excel 文件 xlrd:用于读取 Excel 文件 xlutils:用于操作 Excel 文件的实用工具,比如复制、...
    99+
    2024-04-02
  • python的xlrd模块怎么使用
    这篇文章主要介绍“python的xlrd模块怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“python的xlrd模块怎么使用”文章能帮助大家解决问题。xlrd是python语言中用于读取ex...
    99+
    2023-06-27
  • Python里面的xlrd模块详解
    那我就一下面积个问题对xlrd模块进行学习一下: 什么是xlrd模块? 为什么使用xlrd模块? 怎样使用xlrd模块? 1.什么是xlrd模块?   ♦python操作excel主要用到xlrd和xlwt这两个库,即xlrd是读exce...
    99+
    2023-09-05
    python excel 开发语言 编辑器
  • python xlwt模块的使用解析
    目录一、基础类介绍1、工作簿类Workbook简介:2、工作表类WorkSheet简介3、创建一个不带样式的基础Excel表二、xlwt高级应用1、字体类Font简介1.1创建一个改...
    99+
    2024-04-02
  • python 安装、配置、使用 xlrd模块、numpy模块、matplotlib、opencv模块
    目录  一、xlrd模块 (一)安装xlrd模块 (二) pycharm 配置xlrd (三) 读取xls格式 (四)xlrd读取时间日期时,会是float类型,需要转换。 二、numpy模块  (一)numpy模块安装---使用清华大学镜...
    99+
    2023-10-23
    python numpy 开发语言
  • 【Python入门教程】Python常用表格函数&操作(xlrd、xlwt、openpyxl、xlwings)
            在我们使用Python时,避免不了与Excel打交道。同样Python的三方库和代码的简洁性也为我们处理大数据提供了便利。今天给大家介绍一下常用的处理表格的函数,同时还有一些常用的操作。               ...
    99+
    2023-10-09
    python 大数据 数据库
  • 利用Python中xlwt模块操作excel的示例详解
    目录一、安装二、创建表格并写入三、设置单元格样式四、设置单元格宽度五、设置单元格背景色六、设置单元格内容对齐方式七、单元格添加超链接八、单元格添加公式九、单元格中输入日期十、合并行和...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作