当前位置:   article > 正文

Python 读取写入excel文件_python用.xlsx数据

python用.xlsx数据

使用Python读取和写入excel的xlsx、xls文件

 

目录

读取xlsx文件

安装三方库

引入三方库

读取数据

打开文件

表名

最大行数

最大列数

读取一张表

读取整个文件

返回xls整体内容

安装三方包

读取内容

写入xls文件

引入三方库

创建文件并写入数据

报错及解决

报错

解决

总结


读取xlsx文件

安装三方库

命令如下:

pip install openpyxl

安装过程:

引入三方库

把使用需要的库引入进来

示例如下:

  1. from openpyxl.reader.excel import load_workbook
  2. import os

 

读取数据

打开文件

加载文件路径,打开文件并获取所有表头。

  1. file = load_workbook(filename=path)
  2. sheets = file.get_sheet_names()

表名

打印该表的表名称。

示例如下:

  1. sheet1 = file.get_sheet_by_name(sheets[0])
  2. print(sheet1.title)

最大行数

打印该表的最大行数。

示例如下:

  1. sheet1 = file.get_sheet_by_name(sheets[0])
  2. print(sheet1.max_row)

最大列数

打印该表的最大列数。

示例如下:

  1. sheet1 = file.get_sheet_by_name(sheets[0])
  2. print(sheet1.max_column)

读取一张表

读取excel文件中第一张表的所有数据,使用循环取得数据,添加到列表中后返回并打印。

示例如下:

  1. def read_xls(path):
  2. file = load_workbook(filename=path)
  3. sheets = file.get_sheet_names()
  4. sheet1 = file.get_sheet_by_name(sheets[0])
  5. for lineNum in range(1, sheet1.max_row + 1):
  6. lineList = []
  7. for columnNum in range(1, sheet1.max_column + 1):
  8. # 拿数据
  9. value = sheet1.cell(row=lineNum, column=columnNum).value
  10. lineList.append(value)
  11. print(lineList)
  12. # 读一张表数据
  13. path = os.path.join(os.getcwd(), './test.xlsx')
  14. read_xls(path)

读取整个文件

读取excel xlsx整个文件所有表内容。

示例如下:

  1. from openpyxl.reader.excel import load_workbook
  2. import os
  3. def read_xls(path):
  4. dic = {}
  5. file = load_workbook(filename=path)
  6. sheets = file.get_sheet_names()
  7. for sheetName in sheets:
  8. sheet = file.get_sheet_by_name(sheetName)
  9. # 存储一张表所有数据
  10. sheetInfo = []
  11. for lineNum in range(1, sheet.max_row + 1):
  12. lineList = []
  13. for columnNum in range(1, sheet.max_column + 1):
  14. value = sheet.cell(row=lineNum, column=columnNum).value
  15. lineList.append(value)
  16. sheetInfo.append(lineList)
  17. # 存入字典
  18. dic[sheetName] = sheetInfo
  19. return dic
  20. path = os.path.join(os.getcwd(), './test.xlsx')
  21. print(read_xls(path))

效果为:

注意:不能处理xls文件。警告并不影响使用。

返回xls整体内容

安装三方包

因为需要操作xls后缀文件,需要安装一下三方包。

命令如下:

  1. pip install pyexcel
  2. pip install pyexcel-xls
  3. pip install pyexcel-xlsx

如果使用有问题,再安装以下这几个库:

  1. pip install xlrd
  2. pip install future
  3. pip install xlwt-future

 

读取内容

示例如下:

  1. from collections import OrderedDict
  2. from pyexcel_xls import get_data
  3. import os
  4. def read_xls_xlsx(path):
  5. dic = OrderedDict()
  6. getData = get_data(path)
  7. for sheet in getData:
  8. dic[sheet] = getData[sheet]
  9. return dic
  10. path = os.path.join(os.getcwd(), 'test2.xls')
  11. print(read_xls_xlsx(path))

执行效果:

  1. E:\lianxipy\venv\Scripts\python.exe E:\lianxipy\python基础\读取excel\返回xls和xlsx整体内容.py
  2. 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后缀文件。

写入xls文件

创建excel文件,并把数据写入到xls文件中。

引入三方库

示例如下:

  1. from collections import OrderedDict
  2. from pyexcel_xls import save_data
  3. import os

创建文件并写入数据

编写好处理创建和组装数据处理函数,传入设定的路径和数据,调用函数。

示例如下:

  1. def create_excel(path, data):
  2. dic = OrderedDict()
  3. for sheetName, sheetValue in data.items():
  4. datas = {}
  5. datas[sheetName] = sheetValue
  6. dic.update(datas)
  7. save_data(path, dic)
  8. path = os.path.join(os.getcwd(), 'write1.xls')
  9. data = {'表1': [[1, 2, 3], [4, 5, 6]], '表2': [[11, 22], [33, 44]]}
  10. create_excel(path, data)

报错及解决

报错

ValueError: cannot use LOCALE flag with a str pattern

报错全部内容截图如下:

解决

修改python安装目录下Lib中的sre_parse.py。

注释901行中代码

修改如下:

执行结果:

总结

本篇主要为使用Python 操作excel文件读取和写入安装类库和使用示例。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/运维做开发/article/detail/817001
推荐阅读
相关标签
  

闽ICP备14008679号