行使python做excel表格的办法:起首用openpyxl模块关上一个excel文档,指定行指定列的单位格信息;而后挪用【wb.sheetnames】以及【wb.active】猎取工作簿具体信息;最初应用索引读取获得Cell工具。
一 python与Excel表格
Excel 是 Windows 环境上流行的、弱小的电子表格使用。openpyxl 模块让 Python 顺序能读取以及修正 Excel电子表格文件
1)excel文档的根本界说
- 工作薄(workbook)
- 工作表(sheet)
- 流动表(active sheet)
- 行(row): 1,2,3,4,5,6……..
- 列(column): A,B,C,D……..
- 单位格(cell): B1, C1
2)python关于Excel表格操作的模块有不少种,这里选用openpyxl模块
然而openpyxl模块时需求进行装置的
pip install openpyxl
行使以上饬令来装置openpyxl模块
这是选作需求操作的表格
1> 关上一个excel文档
import openpyxl# 1. 关上一个excel文档, class 'openpyxl.workbook.workbook.Workbook'实例化进去的工具wb = openpyxl.load_workbook('Book.xlsx') print(wb, type(wb))# 猎取以后工作薄里一切的工作表,以及在应用的表;print(wb.sheetnames) print(wb.active)
输入的是一个工具
2> 抉择要操作的工作表
# 2.抉择要操作的工作表,前往工作表工具sheet=wb['Sheet1'] #猎取工作表的称号print(sheet.title)
3> 指定行指定列的单位格信息
# 3. 前往指定行指定列的单位格信息print(sheet.cell(row=1, column=2).value) cell = sheet['B1']print(cell)print(cell.row, cell.column, cell.value)
4> 猎取工作表中行以及列的最年夜值
# 4. 猎取工作表中行以及列的最年夜值print(sheet.max_column)print(sheet.max_row) sheet.title = '先生信息'print(sheet.title)
5> 拜访单位格的一切信息
# 5. 拜访单位格的一切信息print(sheet.rows) # 前往一个天生器, 蕴含文件的每一一行内容, 能够经过便当拜访. # 轮回遍历每一一行for row in sheet.rows: # 轮回遍历每个单位格for cell in row: # 猎取单位格的内容 print(cell.value, end=',') print()
6> 保留修正信息
#6.保留修正信息wb.save(filename='Boom.xlsx')
因而操作Excel表格可具体的归纳综合以下:
1.导入 openpyxl 模块。
2.挪用 openpyxl.load_workbook()函数。
3.获得 Workbook 工具。
4.挪用 wb.sheetnames以及 wb.active 猎取工作簿具体信息。
5.获得 Worksheet 工具。
6.应用索引或工作表的 cell()办法,带上 row 以及 column 要害字参数。
7.获得 Cell 工具。
8.读取 Cell 工具的 value 属性
二 Excel简略实例
- 界说一个函数, readwb(wbname, sheetname=None)
- 假如用户指定sheetname就关上用户指定的工作表, 假如不指定, 关上active sheet;
- 依据商品的价钱进行排序(由小到年夜), 保留到文件中;商品称号:商品价钱:商品数目
- 一切信息, 并将其保留到数据库中
import osimport openpyxldef readwb(wbname, sheetname=None): # 关上工作薄 wb = openpyxl.load_workbook(wbname) # 猎取要操作的工作表 if not sheetname: sheet = wb.active else: sheet = wb[sheetname] # 猎取商品信息保留到列表中 #[ ['name', price, count] all_info = [] for row in sheet.rows: child = [cell.value for cell in row] all_info.append(child) return sorted(all_info, key=lambda item: item[1])def save_to_excel(data, wbname, sheetname='sheet1'): """ 将信息保留到excel表中; [[' BOOK', 50, 3], ['APPLE', 100, 1], ['BANANA', 200, 0.5]] """ print("写入Excel[%s]中......." %(wbname)) #关上excel表, 假如文件没有存正在, 本人实例化一个WorkBook工具 wb = openpyxl.Workbook() # 修正以后工作表的称号 sheet = wb.active # 修正工作表的称号 sheet.title = sheetname for row, item in enumerate(data): # 0 [' BOOK', 50, 3] for column, cellValue in enumerate(item): # 0 ' BOOK' sheet.cell(row=row+1, column=column+1, value=cellValue) # ** 往单位格写入内容 # sheet.cell['B1'].value = "value" # sheet.cell(row=1, column=2, value="value") # 保留写入的信息 wb.save(filename=wbname) print("写入胜利!") data = readwb(wbname='Book1.xlsx') save_to_excel(data, wbname='Book2.xlsx', sheetname="排序商品信息")
* 三 更改表格的内容*
每一一行代表一次独自的发卖。列辨别是发卖产物的类型(A)、产物每一磅的价钱
(B)、发卖的磅数(C),和此次发卖的总支出。TOTAL 列设置为 Excel 公式,将每一磅的老本乘以发卖的磅数,
并将后果取整到分。有了这个公式,假如列 B 或 C 发作变动,TOTAL 列中的单位格将主动更新.
需求更新的价钱以下:
Celery 1.19
Garlic 3.07
Lemon 1.27
如今假定 Garlic、 Celery 以及 Lemons 的价钱输出的没有正确。这让你面临一项无聊
的义务:遍历这个电子表格中的几千行,更新一切 garlic、celery 以及 lemon 行中每一磅
的价钱。你不克不及简略地对价钱查找交换,由于可能有其余的产物价钱同样,你没有希
望谬误地“更正”。关于几千行数据,手工操作可能要几小时
下载文件 : produceSales.xlsx
原文件关上状况:
1> 起首需求关上电子表格文件
2> 而后查找每一一行内容,反省列 A (即列表的第一个索引)的值是否是 Celery、Garlic 或 Lemon
3> 假如是,更新列 B 中的价钱(即列表第二个索引)
4> 最初将该表格保留为一个新的文件
import osimport openpyxldef readwb(wbname, sheetname=None): # 关上工作薄 wb = openpyxl.load_workbook(wbname) # 猎取要操作的工作表 if not sheetname: sheet = wb.active else: sheet = wb[sheetname] # 猎取商品信息保留到列表中 all_info = [] for row in sheet.rows: child = [cell.value for cell in row] all_info.append(child) if child[0] == 'Celery': child[1] = 1.19 if child[0] == 'Garlic': child[1] = 3.07 if child[0] == 'Lemon': child[1] = 1.27 return all_infodef save_to_excel(data, wbname, sheetname='sheet1'): """ 将信息保留到excel表中; """ print("写入Excel[%s]中......." % (wbname)) # 关上excel表, 假如文件没有存正在, 本人实例化一个WorkBook工具 wb = openpyxl.Workbook() # 修正以后工作表的称号 sheet = wb.active # 修正工作表的称号 sheet.title = sheetname for row, item in enumerate(data): # 0 [' BOOK', 50, 3] for column, cellValue in enumerate(item): # 0 ' BOOK' sheet.cell(row=row + 1, column=column + 1, value=cellValue) # ** 往单位格写入内容 # sheet.cell['B1'].value = "value" # sheet.cell(row=1, column=2, value="value") # 保留写入的信息 wb.save(filename=wbname) print("写入胜利!") data = readwb(wbname='/home/kiosk/Desktop/day17/produceSales.xlsx') save_to_excel(data, wbname='new_Sales.xlsx', sheetname="商品信息")
示意写入新数据胜利
这是更改后的保留的新表格
以上就是python针对Excel表格的操作的具体内容,更多请存眷资源魔其它相干文章!
标签: excel Python python教程 python编程 python使用问题
抱歉,评论功能暂时关闭!