Excel是 Windows 环境下流行的、强大的电子表格应用。openpyxl模块让Python 程序能读取和修改 Excel电子表格文件。
工作薄(workbook)
工作表(sheet)
活动表(active sheet)
行(row): 1,2,3,4,5,6……..
列(column): A,B,C,D……..
单元格(cell): B1, C1
Python没有自带opwenpyxl
pip install openpyxl
import openpyxl
# 1. 打开一个excel文档, class 'openpyxl.workbook.workbook.Workbook'实例化出来的对象
wb = openpyxl.load_workbook('example.xlsx')
# print(wb, type(wb))
# 获取当前工作薄里所有的工作表, 和正在使用的表;
print(wb.sheetnames)
print(wb.active)
# 2. 选择要操作的工作表, 返回工作表对象
sheet = wb['Sheet1']
# 获取工作表的名称
print(sheet.title)
# 3. 返回指定行指定列的单元格信息
print(sheet.cell(row=1, column=2).value)
cell = sheet['B1']
print(cell)
print(cell.row, cell.column, cell.value)
# 商品名称 商品价格 商品数量
- 定义一个函数, readwb(wbname, sheetname=None)
- 如果用户指定sheetname就打开用户指定的工作表, 如果没有指定, 打开active sheet;
- 根据商品的价格进行排序(由小到大),保存到文件中;商品名称:商品价格:商品数量
- 所有信息, 并将其保存到数据库中;
import os
import openpyxl
def 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="排序商品信息")