千家信息网

Excel如何使用python实现办公自动化

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇"Excel如何使用python实现办公自动化"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起
千家信息网最后更新 2026年11月01日Excel如何使用python实现办公自动化

这篇"Excel如何使用python实现办公自动化"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇"Excel如何使用python实现办公自动化"文章吧。

准备

使用 Python 操作 Excel 文件,常见的方式如下:

  • xlrd / xlwt

  • openpyxl

  • Pandas

  • xlsxwriter

  • xlwings

  • pywin32

xlrd 和 xlwt 是操作 Excel 文件最多的两个依赖库

其中,

xlrd 负责读取 Excel 文件,xlwt 可以写入数据到 Excel 文件

我们安装这两个依赖库

# 安装依赖库pip3 install xlrd pip3 install xlwt

xlrd 读取 Excel

使用 xlrd 中的 open_workbook(filepath) 打开本地一个 Excel 文件

import xlrd# 打开文件,返回一个工作簿对象wb = xlrd.open_workbook(file_path)

工作簿对象的 nsheets 属性获取 Sheet 数目,sheet_names() 方法返回所有 Sheet 名称的列表

# 统计sheet数量sheets_num, sheets_names = wb.nsheets, wb.sheet_names()print('sheet数量一共有:', sheets_num)print('sheet名称分别为:', sheets_names)

筛选出工作簿中的某一个 Sheet 有 2 种方式,分别是:

  • 通过 Sheet 名称

  • 使用位置索引,从 0 开始

# 获取某一个sheet# 通过名称或者索引获取sheet = wb.sheet_by_index(0)# sheet = wb.sheet_by_name('第一个Sheet')print(sheet)

每一个 sheet 对象都可以利用 name、nrows、ncols 获取 Sheet 名称、行数量、列数量

另外

row_values(index)、col_values(index) 分别用于获取某一行或某一列的数据列表

# 获取某一个sheet中,包含的行数量、列数量sheet_name, sheet_row_count, sheet_column_count = sheet.name, sheet.nrows, sheet.ncolsprint('当前sheet名称为:', sheet_name, ",一共有:", sheet_row_count, "行;有:", sheet_column_count, "列")# 单独获取某一行数据,索引从0开始# 比如:获取第2行数据row_datas = sheet.row_values(1)print('第2行数据为:', row_datas)# 单独获取某一列数据,索引从0开始# 比如:获取第二列数据column_datas = sheet.col_values(1)print('第2列数据为:', column_datas)

单元格可以通过行索引、列索引,调用 cell(row_index,column_index) 函数获取

需要注意的是,行索引和列索引都是从 0 开始,即:0 代表第一行

在 xlrd 中,单元格的数据类型包含 6 种,用 ctype 属性对应关系如下:

  • 0 -- 空(empty)

  • 1 -- 字符串(string)

  • 2 -- 数字(number)

  • 3 -- date(日期)

  • 4 -- boolean(布尔值)

  • 5 -- error(错误)

# 获取某一个单元格的数据# 比如:获取第2行第1列的单元格的数据one_cell = sheet.cell(1, 0)# 单元格的值cell_value = one_cell.valueprint("单元格的值为:", cell_value)# 单元格数据类型cell_type = one_cell.print("单元格数据类型为:", cell_type)

最后,如果要获取当前 Sheet 所有单元格中的数据,可以通过遍历所有行、列来操作

# 获取所有单元格的值print('表格中所有数据如下:')for r in range(sheet.nrows):    for i in range(sheet.ncols):        print(sheet.cell(r, i).value)

xlwt 写入 Excel

如果想实现将数据写入到 Excel 中,xlwt 就很方便了

首先,使用 xlwt 的 Workbook() 方法创建一个工作簿对象

然后,使用工作簿对象的 add_sheet(sheetname) 方法新增 Sheet

import xlwtsheetname = '第一个Sheet'# 创建一个工作簿对象wb = xlwt.Workbook()# 添加Sheet,通过sheet名称sheet = wb.add_sheet(sheetname)

接着,通过 sheet 对象的 write() 方法,按照行索引和列索引,将数据写入到对应单元格中去

# 将数据写入到Sheet中# 3个参数分别是:行索引(从0开始)、列索引(从0开始)、单元格的值# 第一行第一列,写入一个数据# 写入标题for index, title in enumerate(self.titles):    sheet.write(0, index, title)# 写入值for index_row, row_values in enumerate(self.values):    for index_column, column_value in enumerate(row_values):        sheet.write(index_row + 1, index_column, column_value)

需要注意的是,最后必须调用工作簿的 save(filepath),才能在本地生成 Excel 文件

# 保存文件# 最后保存文件即可wb.save(filepath)

进阶用法

接下来,聊聊几个常用的进阶用法

1、获取所有可见的 Sheet

在读取 Sheet 数据时,经常需要过滤隐藏的 Sheet

当 sheet 对象的 visibility 属性值为 0 时,代表此 Sheet 在工作簿中是显示的;否则被隐藏了

def get_all_visiable_sheets(self, wb):    """    获取所有可见的sheet    :param wb:    :return:    """    return list(filter(lambda item: item.visibility == 0, wb.sheets()))# 1、获取所有可看见的sheetsheet_visiable = self.get_all_visiable_sheets(wb)print('所有可见的sheet包含:', sheet_visiable)

2、获取 Sheet 可见行或列

某一个 Sheet 中,可能存在部分行、列被隐藏了

def get_all_visiable_rows(self, sheet):    """    获取某一个sheet中,可见的行    :param sheet:    :return:    """    result = [index for index in range(sheet.nrows) if sheet.rowinfo_map[index].hidden == 0]    return resultdef get_all_visiable_columns(self, sheet):    """    获取某一个sheet中,可见的列    :param sheet:    :return:    """    result = [index for index in range(sheet.ncols) if sheet.colinfo_map[index].hidden == 0]    return result

3、获取单元格的样式

以获取单元格字体颜色和背景为例

def get_cell_bg_color(self, wb, sheet, row_index, col_index):    """    获取某一个单元格的背景颜色    :param wb:    :param sheet:    :param row_index:    :param col_index:    :return:    """    xfx = sheet.cell_xf_index(row_index, col_index)    xf = wb.xf_list[xfx]    # 字体颜色    font_color = wb.font_list[xf.font_index].colour_index    # 背景颜色    bg_color = xf.background.pattern_colour_index    return font_color, bg_color

需要注意的是,使用 xlrd 读取单元格的样式,打开工作簿的时候需要显式定义 formatting_info = True,否则会抛出异常

# 注意:必须设置formatting_info=True,才能正常获取属性wb = xlrd.open_workbook(file_path, formatting_info=True)sheet = wb.sheet_by_index(0)

最后

搭配使用 xlrd、xlwt,基本上能完成大部分的工作,对于一些复杂的功能,比如:复制、分割、筛选等功能,可以用上 xlutils 这个依赖库

需要指出的是,这个组合对 xlsx 的兼容性不太好;如果需要操作 xlsx 文件,需要先转为 xls,然后再进行。

以上就是关于"Excel如何使用python实现办公自动化"这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注行业资讯频道。

数据 单元 文件 工作 对象 索引 名称 数量 内容 一行 属性 方法 颜色 列索 办公 自动化 类型 背景 两个 代表 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 耶加雪菲 深圳市人人互联网科技有限公司 嘟嘟瓜互联网科技 百单互联网科技有限公司 苏州互联网科技贷款公司 无线互联网科技 一五八零互联网科技 互联网科技寓意 智腾互联网科技有限公司 互联网5g黑科技有哪些 新兴科技互联网创新大赛颁奖典礼 互联网保险科技创业 东莞新华互联网科技学校 四川慕妮娅互联网科技有限公司 朱啸虎曾投资哪些互联网科技企业 互联网风格科技公司名称 广州有谷有贝互联网科技有限公司 吉林省码上互联网科技电话 悟空问答互联网科技 山东蛋芒互联网科技有限公司 深圳市人人互联网科技有限公司 互联网科技卖菜 深圳天众互联网科技公司 互联网科技咨询 深圳卡尔迅互联网科技有限公司怎么样 互联网公司会议桌创意科技软装饰 阿里互联网科技公司 上海京穆互联网科技有限公司 陕西彩京云互联网科技有限公司 互联网科技快速发展优美句子
0