ps:这个需要注意的点 原文件周杰伦.xlsx 只有一个Sheet的工作簿 需要再添加一个工作簿 不然直接删除了Sheet工作簿 周杰伦1.xlsx的文件就打开不了 因为里面已经没有工作簿了
4 创建工作簿import openpyxl as vb file r 周杰伦.xlsx book vb.load_workbook(file) book.create_sheet( Sheet2 ) book.save(file)5 复制工作簿
import openpyxl as vb file r 周杰伦.xlsx book vb.load_workbook(file) workSheet_Copy book.copy_worksheet(book[ Sheet ]) book.save(file)6 给复制的工作簿起名字
import openpyxl as vb file r 周杰伦.xlsx book vb.load_workbook(file) workSheet_Copy book.copy_worksheet(book[ Sheet ]) # 复制Sheet这张表 workSheet_Copy.title 复制的工作表 # 给复制的表起名字 book.save(file)创建多个工作簿
import openpyxl as vb file r 林俊杰.xlsx book vb.Workbook(file) for i in range(1,32): book.create_sheet( 9月 str(i) 日 ) book.save(file)修改所有的工作簿
import openpyxl as vb file r 林俊杰.xlsx book vb.load_workbook(file) See_all_workSheet book.worksheets for i in See_all_workSheet: # print(i.title) # 显示所有工作表 表名 i.title 北京 - i.title book.save(file)比对所有的工作簿 找出不是上海的删除
import openpyxl as vb file r 林俊杰.xlsx book vb.load_workbook(file) See_all_workSheet book.worksheets for i in See_all_workSheet: if i.title.split( - )[0] ! 上海 : # 不等于上海的全删除 workSheet book[i.title] # 找出不是上海 book.remove(workSheet) # 进行删除操作 book.save(file)
ps 自己修改一个是上海的 例 上海-9月1日
复制模板 生成多个模板后删除原模板import openpyxl as vb file r 林俊杰.xlsx book vb.load_workbook(file) for i in range(1,32): copy_sheet book.copy_worksheet(book[ 模板 ]) # 获取工作簿名为 模板 复制 copy_sheet.title 7月 str(i) 日 # 修改其标题名称为7月 for循环的i值 日 book.remove(book[ 模板 ]) book.save(file)获取工作簿单元格的值 1 获取某个单元格的值—方法1
import openpyxl as vb file r 林俊杰.xlsx book vb.load_workbook(file) work_sheet book[ Sheet1 ] data work_sheet[ A1 ].value print(data)2 获取某个单元格的值—方法2
import openpyxl as vb file r 林俊杰.xlsx book vb.load_workbook(file) work_sheet book[ Sheet1 ] data work_sheet.cell(row 1,column 1).value #data work_sheet.cell(1,1).value # 可以省略row column的写法 print(data)3 for循环 提取A B C列 10行数据
import openpyxl as vb file r 林俊杰.xlsx book vb.load_workbook(file) work_sheet book[ Sheet1 ] print( 列 , A , B , C ) for i in range(1,10,1): print(i,work_sheet.cell(row i,column 1).value, work_sheet.cell(row i,column 2).value, work_sheet.cell(row i,column 3).value)
ps row 获取 i 的值 就是行数 column分别设置A-1 B-2 C-3列
4 每一行从左到右输出完 再到下一行 →↓ 1.方法1import openpyxl as vb file r 林俊杰.xlsx book vb.load_workbook(file) work_sheet book[ Sheet1 ] data work_sheet[ A1:C10 ] for o in data: for i in o: print(i.value)2.方法2
import openpyxl as vb file r 林俊杰.xlsx book vb.load_workbook(file) work_sheet book[ Sheet1 ] some_range work_sheet.iter_rows(min_row 1,max_row 10,min_col 1,max_col 3) for i in some_range: for data in i: print(data.value)5 每一列从上到下输出完 再到下一列 ↓→ 1.方法1
import openpyxl as vb file r 林俊杰.xlsx book vb.load_workbook(file) work_sheet book[ Sheet1 ] data work_sheet[ A:C ] for o in data: for i in o: print(i.value)2.方法2
import openpyxl as vb file r 林俊杰.xlsx book vb.load_workbook(file) work_sheet book[ Sheet1 ] for i in work_sheet.columns: for data in i: print(data.value)6 以列表的形式输出内容
import openpyxl as vb file r 林俊杰.xlsx book vb.load_workbook(file) work_sheet book[ Sheet1 ] data list(work_sheet.values) for i in data: print(i)7 通过切片截取部分内容 以列表的形式输出内容
import openpyxl as vb file r 林俊杰.xlsx book vb.load_workbook(file) work_sheet book[ Sheet1 ] data list(work_sheet.values)[1:3] for i in data: print(i)数字字母的转换 1 数字转换字母
import openpyxl as vb number_str vb.utils.get_column_letter(1) print(number_str)2 字母转换数字
import openpyxl as vb str_number vb.utils.column_index_from_string( B ) print(str_number)动态读取数据 1 输出表格数据的最大行数
import openpyxl as vb file r 林俊杰.xlsx book vb.load_workbook(file) work_sheet book[ Sheet1 ] max_line work_sheet.max_row print(max_line)2 输出表格数据的最大列数
import openpyxl as vb file r 林俊杰.xlsx book vb.load_workbook(file) work_sheet book[ Sheet1 ] max_line work_sheet.max_column print(max_line)3 获取单元格的值 输出单元格位于哪一行
import openpyxl as vb file r 林俊杰.xlsx book vb.load_workbook(file) work_sheet book[ Sheet1 ] A1_data work_sheet[ A2 ].row print(A1_data)4 获取某一列的数据 添加至空的列表
import openpyxl as vb file r 林俊杰.xlsx book vb.load_workbook(file) work_sheet book[ Sheet1 ] list [] for i in work_sheet[ A ]: list.append(i.value) print(list) print(list[1:4]) # 可通过切片截取5 获取某一行的数据 添加至空的列表
import openpyxl as vb file r 林俊杰.xlsx book vb.load_workbook(file) work_sheet book[ Sheet1 ] list [] #for i in work_sheet[ 1 ]: for i in work_sheet[1]: # 可不加单引号 list.append(i.value) print(list)6 获取所有行的数据 添加至空的列表 →↓
import openpyxl as vb file r 林俊杰.xlsx book vb.load_workbook(file) work_sheet book[ Sheet1 ] list [] for i in work_sheet.rows: for data in i: list.append(data.value) print(list)写入与插入数据 写入单元格修改值 1 方法1
import openpyxl as vb file r 林俊杰.xlsx book vb.load_workbook(file) work_sheet book[ Sheet1 ] work_sheet[ D1 ] 林俊杰 book.save(file)2 方法2
import openpyxl as vb file r 林俊杰.xlsx book vb.load_workbook(file) work_sheet book[ Sheet1 ] work_sheet.cell(2,4,value 林俊杰 ) book.save(file)把列表内容 追加写入工作簿最后一行
import openpyxl as vb file r 林俊杰.xlsx book vb.load_workbook(file) work_sheet book[ Sheet1 ] list [ 1 , 2 , 3 , 4 , 5 ] work_sheet.append(list) book.save(file)范围写入内容 E1 H4 范围的单元格值都写入233
import openpyxl as vb file r 林俊杰.xlsx book vb.load_workbook(file) work_sheet book[ Sheet1 ] for line in work_sheet[ E1:H4 ]: for data in line: data.value 233 book.save(file)
import openpyxl as vb file r 林俊杰.xlsx book vb.load_workbook(file) work_sheet book[ Sheet1 ] work_sheet.insert_cols(idx 2,amount 5) book.save(file)
import openpyxl as vb file r 林俊杰.xlsx book vb.load_workbook(file) work_sheet book[ Sheet1 ] work_sheet.insert_rows(idx 2,amount 5) book.save(file)删除行和列
import openpyxl as vb file r 林俊杰.xlsx book vb.load_workbook(file) work_sheet book[ Sheet1 ] work_sheet.delete_rows(idx 2,amount 5) work_sheet.delete_cols(idx 2,amount 5) book.save(file)
参考
Python办公自动化之Excel篇 openpyxl库 python中的VBA 【已完结】 Python自动化_哔哩哔哩_bilibili



