标签: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