赞
踩
使用Python读取和写入excel的xlsx、xls文件
目录
命令如下:
pip install openpyxl
安装过程:
把使用需要的库引入进来
示例如下:
- from openpyxl.reader.excel import load_workbook
- import os
加载文件路径,打开文件并获取所有表头。
- file = load_workbook(filename=path)
- sheets = file.get_sheet_names()
打印该表的表名称。
示例如下:
- sheet1 = file.get_sheet_by_name(sheets[0])
- print(sheet1.title)
打印该表的最大行数。
示例如下:
- sheet1 = file.get_sheet_by_name(sheets[0])
- print(sheet1.max_row)
打印该表的最大列数。
示例如下:
- sheet1 = file.get_sheet_by_name(sheets[0])
- print(sheet1.max_column)
读取excel文件中第一张表的所有数据,使用循环取得数据,添加到列表中后返回并打印。
示例如下:
- def read_xls(path):
- file = load_workbook(filename=path)
- sheets = file.get_sheet_names()
- sheet1 = file.get_sheet_by_name(sheets[0])
- for lineNum in range(1, sheet1.max_row + 1):
- lineList = []
- for columnNum in range(1, sheet1.max_column + 1):
- # 拿数据
- value = sheet1.cell(row=lineNum, column=columnNum).value
- lineList.append(value)
- print(lineList)
- # 读一张表数据
- path = os.path.join(os.getcwd(), './test.xlsx')
- read_xls(path)
读取excel xlsx整个文件所有表内容。
示例如下:
- from openpyxl.reader.excel import load_workbook
- import os
-
-
- def read_xls(path):
- dic = {}
- file = load_workbook(filename=path)
- sheets = file.get_sheet_names()
-
- for sheetName in sheets:
- sheet = file.get_sheet_by_name(sheetName)
- # 存储一张表所有数据
- sheetInfo = []
- for lineNum in range(1, sheet.max_row + 1):
- lineList = []
- for columnNum in range(1, sheet.max_column + 1):
- value = sheet.cell(row=lineNum, column=columnNum).value
- lineList.append(value)
- sheetInfo.append(lineList)
-
- # 存入字典
- dic[sheetName] = sheetInfo
- return dic
-
-
- path = os.path.join(os.getcwd(), './test.xlsx')
- print(read_xls(path))
效果为:
注意:不能处理xls文件。警告并不影响使用。
因为需要操作xls后缀文件,需要安装一下三方包。
命令如下:
- pip install pyexcel
- pip install pyexcel-xls
- pip install pyexcel-xlsx
如果使用有问题,再安装以下这几个库:
- pip install xlrd
- pip install future
- pip install xlwt-future
示例如下:
- from collections import OrderedDict
- from pyexcel_xls import get_data
- import os
-
-
- def read_xls_xlsx(path):
- dic = OrderedDict()
- getData = get_data(path)
- for sheet in getData:
- dic[sheet] = getData[sheet]
-
- return dic
-
- path = os.path.join(os.getcwd(), 'test2.xls')
- print(read_xls_xlsx(path))
执行效果:
- E:\lianxipy\venv\Scripts\python.exe E:\lianxipy\python基础\读取excel\返回xls和xlsx整体内容.py
- OrderedDict([('Sheet1', [[1], [2], [3], [4], [5], [6], [7], [8], [9], [10], [11], [12], [13], [14], [15], [16]]), ('Sheet2', [[1], [2], [3], [4], [5], [6], [7], [8], [9], [10], [11], [12], [13], [14], [15], [16], [17], [18], [19], [20], [21]]), ('Sheet3', [])])
注意:无法读取xlsx后缀文件。
创建excel文件,并把数据写入到xls文件中。
示例如下:
- from collections import OrderedDict
- from pyexcel_xls import save_data
- import os
编写好处理创建和组装数据处理函数,传入设定的路径和数据,调用函数。
示例如下:
- def create_excel(path, data):
- dic = OrderedDict()
- for sheetName, sheetValue in data.items():
- datas = {}
- datas[sheetName] = sheetValue
- dic.update(datas)
-
- save_data(path, dic)
-
-
- path = os.path.join(os.getcwd(), 'write1.xls')
- data = {'表1': [[1, 2, 3], [4, 5, 6]], '表2': [[11, 22], [33, 44]]}
- create_excel(path, data)
ValueError: cannot use LOCALE flag with a str pattern
报错全部内容截图如下:
修改python安装目录下Lib中的sre_parse.py。
注释901行中代码
修改如下:
执行结果:
本篇主要为使用Python 操作excel文件读取和写入安装类库和使用示例。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。