首页 > 编程语言 >Python办公自动化_Excel篇

Python办公自动化_Excel篇

时间:2022-10-28 14:22:06浏览次数:50  
标签:xlsx vb 办公自动化 sheet openpyxl Python Excel 工作 workbook

Python办公自动化_Excel篇

库名 作用
xlrd 从excel中读取数据,支持xls,xlsx
xlwt 从excel进行修改操作,不支持对xlsx格式的修改
xlutils 在xlrd和xlwt中,对一个已存在的文件进行修改
openpyxl 主要针对xlsx格式的excel进行读取和编辑
pandas 可对csv进行操作,主要用于大数据分析

安装

安装
1.按 win + R ,输入CMD确定
2.输入 pip install openpyxl
卸载
pip uninstall openpyxl

工作簿

属性 作用
active 获取当前活跃的Worksheet
worksheets 以列表的形式返回所有的Worksheet(表格)
data_only 默认为False,为True时只读取数据不显示公式
read_only 判断是否以read_only模式打开Excel文档
encoding 获取文档的字符集编码
properties 获取文档的元数据,如标题,创建者,创建日期等
sheetnames 获取工作簿中的表(列表)
方法 作用
工作簿.sheetnames 获取所有表格的名称
工作簿['工作表名'] 通过表格名称获取Worksheet对象
工作簿.active 获取活跃的表格
remove 删除一个工作表对象【对象】
create_sheet 创建一个空的表格【表名】
copy_worksheet 在Workbook内拷贝表格【对象】

练习

新建100张工作表
import openpyxl as vb
路径 = r'c:/测试.xlsx'
工作簿 = vb.Workbook(路径) # 打开工作簿
for i in range(1,101):
 工作簿.create_sheet(str(i) + '月')
工作簿.save(路径)
除了9月份的工作表以外都删除
import openpyxl as vb
路径 = r'c:/测试.xlsx'
工作簿 = vb.load_workbook(路径) # 打开工作簿
显示所有工作表 = 工作簿.worksheets
for 工作表 in 显示所有工作表:
 if 工作表.title != '9月':
 工作表 = 工作簿[工作表.title]
 工作簿.remove(工作表)
工作簿.save(路径)
批量修改工作表的名称
import openpyxl as vb
路径 = r'c:/模板.xlsx'
工作簿 = vb.load_workbook(路径)
显示所有工作表 = 工作簿.worksheets
for 工作表 in 显示所有工作表:
 工作表.title = '北京' + 工作表.title
工作簿.save(路径)
获取一个单元格的值
import openpyxl as vb
路径 = r'c:/测试.xlsx'
工作簿 = vb.load_workbook(路径)
工作表 = 工作簿['Sheet1']
单元格 = 工作表['A1'].value
print(单元格)
获取第二列 1,3,5,7行的数据
import openpyxl as vb
路径 = r'c:/测试.xlsx'
工作簿 = vb.load_workbook(路径)
工作表 = 工作簿['Sheet1']
for i in range(1,8,2):
 print(i,工作表.cell(row=i,column=2).value)
获取每一行,每一列
import openpyxl as vb
路径 = r'c:/测试.xlsx'
工作簿 = vb.load_workbook(路径)
工作表 = 工作簿['Sheet1']
# 因为按行,所以返回A1, B1, C1这样的顺序
for 行 in 工作表.rows:
 for 单元格 in 行:
 print(单元格.value)
# A1, A2, A3这样的顺序
for 列 in 工作表.columns:
 for 单元格 in 列:
 print(单元格.value)
读取excel表的所有
from openpyxl import load_workbook
import os
import sys

sys.path.append("..")

class TestExcel():

    def get_TestExcel(self, file_name, sheet_name):
        print("======", os.getcwd())
        # workbook = load_workbook('Datas.xlsx')#打开表
        # sheet = workbook['jack']#定位表单
        workbook = load_workbook(file_name)  # 打开表
        sheet = workbook[sheet_name]  # 定位表单

        test_data = []  # 把所有行的数据放到列表中

        for i in range(2, sheet.max_row + 1):
            sub_data = {}  # 把每行的数据放到字典中
            for j in range(1, sheet.max_column + 1):
                sub_data[sheet.cell(1, j).value] = sheet.cell(i, j).value

            test_data.append(sub_data)  # 拼接每行单元格的数据

        return test_data


if __name__ == "__main__":
    te = TestExcel()
    txt = te.get_TestExcel("../data/Datas.xlsx", "pro")

标签:xlsx,vb,办公自动化,sheet,openpyxl,Python,Excel,工作,workbook
From: https://www.cnblogs.com/djl-0628/p/16835928.html

相关文章