Excel文档与python
Excel 是 Windows 环境下流行的、强大的电子表格应用。
openpyxl 模块让 Python 程序能读取和修改 Excel电子表格文件。例如,可能有一个无聊的任务,需要从一个电子表格拷贝一些数据,粘贴到另一个电子表格中。或者可能需要从几千行中挑选几行,根据某种条件稍作修改。或者需要查看几百份部门预算电子表格,寻找其中的赤字。正是这种无聊无脑的电子表格任务,可以通过 Python 来完成。
LibreOffice Calc, WPS 和 OpenOffice Calc 都能处理 Excel 的电子表格文件格式,这意味着 openpyxl 模块也能处理来自这些应用程序的电子表格。
你可以从 https://www.libreoffice.org/ 和 http://www.openoffice.org/ 下载这些软件。即使你的计算机上已经安装了 Excel,可能也会发现这些程序更容易使用。
1. Excel文档基本定义
工作簿(workbook): 一个 Excel 电子表格文档
工作表(sheet): 每个工作簿可以包含多个表, 如: sheet1, sheet2等
活动表(active sheet): 用户当前查看的表
列(column): 列地址是从 A 开始的
行(row): 行地址是从 1 开始的
单元格(cell): 特定行和列的方格
2. 安装 openpyxl 模块
Python 没有自带 openpyxl,所以必须安装。
pip3 install openpyxl
3. 对Excel 文档的基本操作
import openpyxl # 1. 导入工作簿 wb = openpyxl.load_workbook('/tmp/Book1.xlsx') # 2. 查看工作簿中包含的工作表 print(wb.sheetnames) # 3.查看当前活动表 print(wb.active) # 4.从工作簿中选择要操作的工作表 sheet = wb['成绩表'] # 5.查看指定单元格 # 方法一: # cell = sheet['B3'] # 方法二: cell = sheet.cell(row=3,column=2) # 6. 获取单元格详细信息 print(cell.value) # 7.修改单元格信息 cell.value =111 print(cell.value) # 8.获取工作表的总行数和总列数 print(sheet.max_row) print(sheet.max_column) # 9.修改工作表名称 print(sheet.title) sheet.title = '修改的工作表' print(sheet.title) # 10.遍历Excel表格的所有数据 print(sheet.rows) # 返回的是一个生成器 # 遍历历每一行 for row in sheet.rows: # 获取每一行, 每个单元格的数据 for cell in row: print(cell.value, end='\t') print('') # 11.保存修改的信息 wb.save('/tmp/Book1.xlsx')
讯享网

4. 表格的读写操作
讯享网import openpyxl def create_to_excel(wbname,data,sheetname='Sheet1'): """ 将指定信息保存到新建的excel表格中 :param wbname: :param data: 往excel中存储的数据 :param sheetname: :return: """ print('正在创建eccel表格%s......' %(wbname)) # wb = openpyxl.load_workbook(wbname) # 如果文件不存在,自己实例化一个Workbook的对象 wb = openpyxl.Workbook() # 获取当前活动工作表对象 sheet = wb.active # 将数据data写入excel表格中 sheet.title = sheetname print('正在写入数据......') for row,item in enumerate(data): for column,cellValue in enumerate(item): cell = sheet.cell(row=row+1,column=column+1,value=cellValue) # cell = sheet.cell(row=row+1,column=column+1) # cell.value = cellValue wb.save(wbname) print('保存工作簿%s成功......' %(wbname)) def readwb(wbname,sheetname=None): # 加载工作簿 wb = openpyxl.load_workbook(wbname) # 选择操作的工作表 if not sheetname: sheet = wb.active else: sheet = wb[sheetname] # 读取数据,存储为python的数据结构 goodsInfo = [] for row in sheet.rows: rowValues = [cell.value for cell in row] goodsInfo.append(rowValues) return goodsInfo if __name__ == '__main__': data = [ ['书籍名称','数量','价格'], ['python核心编程','60','90'], ['Java核心编程','50','100'], ['Php核心编程','100','80'] ] create_to_excel('doc/excel01.xlsx',data,'书籍信息统计') GoodsInfo = readwb('doc/excel01.xlsx','书籍信息统计') # print(GoodsInfo) # 按照商品数量进行排序 numSortInfo = [GoodsInfo[0]] + sorted(GoodsInfo[1:],key=lambda x:x[1]) create_to_excel('doc/sorted_by_num.xlsx',numSortInfo,'书籍信息统计按照数量排序') # 按照商品单价进行排序 priceSortInfo = [GoodsInfo[0]] + sorted(GoodsInfo[1:],key=lambda x:x[2]) create_to_excel('doc/sorted_by_price.xlsx',priceSortInfo,'书籍信息统计按照单价排序')


按照商品数量进行排序:

按照商品单价进行排序:


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/73965.html