用Python操作Excel、Word、CSV

 

Python 操作 Excel

数据处理是 Python 的一大应用场景,而 Excel 又是当前最流行的数据处理软件。因此用 Python 进行数据处理时,很容易会和 Excel 打起交道。得益于前人的辛勤劳作,Python 处理 Excel 已有很多现成的轮子,比如 xlrd & xlwt & xlutils 、 XlsxWriter 、 OpenPyXL ,而在 Windows 平台上可以直接调用 Microsoft Excel 的开放接口,这些都是比较常用的工具,还有其他一些优秀的工具这里就不一一介绍,接下来我们通过一个表格展示各工具之间的特点:

类型xlrd&xlwt&xlutilsXlsxWriterOpenPyXLExcel开放接口
读取支持不支持支持支持
写入支持支持支持支持
修改支持不支持支持支持
xls支持不支持不支持支持
xlsx高版本支持支持支持
大文件不支持支持支持不支持
效率超慢
功能较弱强大一般超强大

openpyxl 3.0.7

https://openpyxl.readthedocs.io/en/stable/

Introduction

openpyxl is a Python library to read/write Excel 2010 xlsx/xlsm/xltx/xltm files.

It was born from lack of existing library to read/write natively from Python the Office Open XML format.

All kudos to the PHPExcel team as openpyxl was initially based on PHPExcel.

openpyxl是一个Python库,用于读/写excel2010xlsx/xlsm/xltx/xltm文件。

安装openpyxl

pip install openpyxl
#!/usr/bin/env python 
# -*- coding: utf-8 -*- 
"""
@Version: v1.0
@Project: TestData
@Author : Administrator
@File   : pyexcel.py
@Time   : 2021/3/19 0019 10:21
@IDE    : PyCharm
@Introduction:python通过openpyxl操作Excel
"""
"""
导库顺序:优先基础库\第三方库\自定义封装
格式建议:import一行一个
from导入可以import后面用逗号分隔
"""
from openpyxl import Workbook
from openpyxl import load_workbook
from openpyxl import worksheet
wb_name = 'test.xlsx'
# 创建工作簿
#wb= Workbook(wb_name)
# 保存
#wb.save(wb_name)

# 打开已有工作簿

wbl = load_workbook(wb_name)
wbl = load_workbook(wb_name,data_only=True)
# 创建工作表
ws = wbl.create_sheet("mysheet")
# 获取列表名
wbl.sheetnames

# 单元格操作
ws['A1'] = '1'
ws['A6'] = "hello"
print("A6单元格内容",ws["A6"].value)
# 只要访问就创建
for i in range(1, 101):
	for j in range(1, 101):
		ws.cell(row = i, column = j)
print(ws.max_row)					# 获取最大行
print(ws.max_column)				# 获取最大列
#将遍历工作表中所有行,只返回单元格值
# for row in ws.values:
# 	for value in row:
# 		print(value)

xlrd & xlwt & xlutils 介绍

xlrd&xlwt&xlutils 是由以下三个库组成:

  • xlrd:用于读取 Excel 文件;

  • xlwt:用于写入 Excel 文件;

  • xlutils:用于操作 Excel 文件的实用工具,比如复制、分割、筛选等;

安装库

pip install xlrd xlwt xlutils

写入 Excel

#!/usr/bin/env python 
# -*- coding: utf-8 -*- 
"""
@Version: v1.0
@Project: TestData
@Author : Administrator
@File   : pyexcel.py
@Time   : 2021/3/19 0019 10:21
@IDE    : PyCharm
@Introduction:
"""
"""
导库顺序:优先基础库\第三方库\自定义封装
格式建议:import一行一个
from导入可以import后面用逗号分隔
"""
from openpyxl import Workbook
from openpyxl import load_workbook
from openpyxl import worksheet
import xlwt
wb_name = 'test.xlsx'
def w_excel():
    # 创建工作簿
    wb = xlwt.Workbook(wb_name)
    # 新增两个表单页
    sh1 = wb.add_sheet('成绩')
    sh2 = wb.add_sheet('汇总')
    # 添加数据
    # 第一个参数为行,第二个参数为列
    sh1.write(0, 0, '姓名')
    sh1.write(0, 1, '专业')
    sh1.write(0, 2, '科目')
    sh1.write(0, 3, '成绩')

    sh1.write(1, 0, '张三')
    sh1.write(1, 1, '信息与通信工程')
    sh1.write(1, 2, '数值分析')
    sh1.write(1, 3, 88)

    sh1.write(2, 0, '李四')
    sh1.write(2, 1, '物联网工程')
    sh1.write(2, 2, '数字信号处理分析')
    sh1.write(2, 3, 95)

    sh1.write(3, 0, '王华')
    sh1.write(3, 1, '电子与通信工程')
    sh1.write(3, 2, '模糊数学')
    sh1.write(3, 3, 90)

    sh2.write(0, 0, '总分')
    sh2.write(1, 0, 273)

    # 保存
    wb.save(wb_name)

读取Excel

#!/usr/bin/env python 
# -*- coding: utf-8 -*- 
"""
@Version: v1.0
@Project: TestData
@Author : Administrator
@File   : rdxl.py
@Time   : 2021/3/19 0019 14:02
@IDE    : PyCharm
@Introduction:python使用xlrd读取Excel内容
"""
"""
导库顺序:优先基础库\第三方库\自定义封装
格式建议:import一行一个
from导入可以import后面用逗号分隔
"""
import xlrd
import pydoc
wb_name = 'test.xlsx'
# 打开文件
wb = xlrd.open_workbook(wb_name)

# 获取并打印sheet数量

print("sheet 数量:",wb.nsheets)
print("sheet 名称:",wb.sheet_names())

# 根据sheet索引获取内容
sh1 =wb.sheet_by_index(0)

# 遍历所有表单内容
for sh in wb.sheets():
    for r in range(sh.nrows):
        # 输出指定行
        print( sh.row(r))

修改Excel

#!/usr/bin/env python 
# -*- coding: utf-8 -*- 
"""
@Version: v1.0
@Project: TestData
@Author : Administrator
@File   : upexcel.py
@Time   : 2021/3/19 0019 14:37
@IDE    : PyCharm
@Introduction:
"""
"""
导库顺序:优先基础库\第三方库\自定义封装
格式建议:import一行一个
from导入可以import后面用逗号分隔
"""
import xlrd
from xlutils.copy import copy
# 导入 xlwt 库
import xlwt

# 设置写出格式字体红色加粗
styleBR = xlwt.easyxf('font: name Times New Roman, color-index red, bold on')

# 设置数字型格式为小数点后保留两位
styleNum = xlwt.easyxf(num_format_str='#,##0.00')

# 设置日期型格式显示为YYYY-MM-DD
styleDate = xlwt.easyxf(num_format_str='YYYY-MM-DD')


wb_name = 'test.xlsx'
# 打开文件
rb = xlrd.open_workbook(wb_name)
# 复制
wb = copy(rb)

# 选取第一个表单
sh1 = wb.get_sheet(0)

# 在第五行新增写入数据
sh1.write(4, 0, '王欢',styleBR)
sh1.write(4, 1, '通信工程')
sh1.write(4, 2, '机器学习')
sh1.write(4, 3, 89,styleNum)

# 选取第二个表单
sh1 = wb.get_sheet(1)

# 替换总成绩数据
sh1.write(1, 0, 362)

# 保存
wb.save(wb_name)

Python 操作 Word

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值