当前位置: 首页> 房产> 家装 > Python读写excel

Python读写excel

时间:2025/8/8 10:54:00来源:https://blog.csdn.net/weixin_44875787/article/details/140113424 浏览次数:0次

Python读写excel

  • 1.openpyxl安装
  • 2.Python读写excel
    • 2.1 读取excel
      • 2.1.1 excel文件内容
      • 2.1.2 excel读取
    • 2.2 写入excel
      • 2.1.1 创建工作簿
      • 2.1.2 获取默认工作表
      • 2.1.3单元格写入
      • 2.1.4每行写入
  • 3.问题记录
    • 3.1 问题1:openpyxl.utils.exceptions.InvalidFileException: openpyxl does not support the old .xls file format
    • 3.2 问题2:raise IOError("File contains no valid workbook part")
    • 3.3 问题3:'Worksheet sheet1 does not exist.'

本文描述内容主要包括:
(1)openpyxl模块的安装;
(2)以openpyxl模块读写excel文件;
(3)在写示例的过程中遇到的问题。

1.openpyxl安装

打开terminal,执行pip install openpyxl命令。

2.Python读写excel

2.1 读取excel

2.1.1 excel文件内容

(1)新建1.xlsx文件。Sheet1内容:
在这里插入图片描述
(2)Sheet2内容:
在这里插入图片描述

2.1.2 excel读取

import openpyxl#读取Excel文件
excel = openpyxl.load_workbook("1.xlsx")
sheet1 = excel['Sheet1']
#获取单元格数据
value = sheet1['A1'].value
print("A1:"+value)
value = sheet1['B2'].value
print("B2:"+value)sheet2 = excel['Sheet2']
sheet2A2 = sheet2['A2'].value
sheet2B2 = sheet2['B2'].value
sheet2C2 = sheet2['C2'].value
print(f"A2:{sheet2A2},B2:{sheet2B2},C2:{sheet2C2}")
#修改单元格数据
sheet2['C2'].value = 9
excel.save("1.xlsx")

执行程序后:

A1:a1
B2:我不好
A2:西红柿,B2:红色,C2:10

2.2 写入excel

2.1.1 创建工作簿

workbook = openpyxl.Workbook()

2.1.2 获取默认工作表

sheet = workbook.active

2.1.3单元格写入

sheet['A1'] = "原值"
sheet['B1'] = "平方"
sheet['C1'] = "立方"
sheet['D1'] = "四次方"

2.1.4每行写入

for i in range(1,10):sheet.append([i,i**2,i**3,i**4])
workbook.save("0.xlsx")

执行程序后:
在这里插入图片描述

3.问题记录

3.1 问题1:openpyxl.utils.exceptions.InvalidFileException: openpyxl does not support the old .xls file format

(1)问题描述:

Traceback (most recent call last):File "/home/tarena/PycharmProjects/爬虫/.idea/excelLearn.py", line 4, in <module>excel = openpyxl.load_workbook("0.xls")File "/home/tarena/.local/lib/python3.6/site-packages/openpyxl/reader/excel.py", line 347, in load_workbookdata_only, keep_links, rich_text)File "/home/tarena/.local/lib/python3.6/site-packages/openpyxl/reader/excel.py", line 123, in __init__self.archive = _validate_archive(fn)File "/home/tarena/.local/lib/python3.6/site-packages/openpyxl/reader/excel.py", line 93, in _validate_archiveraise InvalidFileException(msg)
openpyxl.utils.exceptions.InvalidFileException: openpyxl does not support the old .xls file format, please use xlrd to read this file, or convert it to the more recent .xlsx file format.

(2)问题解析:openpyxl模块无法读取*.xls格式的老式Excel文件,只认*.xlsx格式的Excel文件
(3)问题解决方法:创建*.xlsx格式的Excel文件,重新保存当前的XX.xls文件为新的XX.xlsx文件,但不可直接重命名修改。

3.2 问题2:raise IOError(“File contains no valid workbook part”)

(1)问题描述:

Traceback (most recent call last):File "/home/tarena/PycharmProjects/爬虫/.idea/excelLearn.py", line 4, in <module>excel = openpyxl.load_workbook("0.xlsx")File "/home/tarena/.local/lib/python3.6/site-packages/openpyxl/reader/excel.py", line 348, in load_workbookreader.read()File "/home/tarena/.local/lib/python3.6/site-packages/openpyxl/reader/excel.py", line 293, in readself.read_workbook()File "/home/tarena/.local/lib/python3.6/site-packages/openpyxl/reader/excel.py", line 151, in read_workbookwb_part = _find_workbook_part(self.package)File "/home/tarena/.local/lib/python3.6/site-packages/openpyxl/reader/excel.py", line 112, in _find_workbook_partraise IOError("File contains no valid workbook part")
OSError: File contains no valid workbook part

(2)问题解析:文件包含无效的工作簿,不可直接重命名修改当前的XX.xls文件为新的XX.xlsx文件。
(3)问题解决办法:
重新创建*.xlsx格式的Excel文件,并拷贝源数据到此文件中即可。

3.3 问题3:‘Worksheet sheet1 does not exist.’

(1)问题描述:

Traceback (most recent call last):File "/home/tarena/PycharmProjects/爬虫/.idea/excelLearn.py", line 5, in <module>sheet = excel['sheet1']File "/home/tarena/.local/lib/python3.6/site-packages/openpyxl/workbook/workbook.py", line 287, in __getitem__raise KeyError("Worksheet {0} does not exist.".format(key))
KeyError: 'Worksheet sheet1 does not exist.'

(2)问题解析:工作栏sheet1不存在,程序无法在xx.xlsx中找到sheet1。
(3)问题解决办法:sheet1需要于xx.xlsx文件中的sheet名称保持一致。在我的文件中包含三个sheet,分别为"Sheet1"、“Sheet2”、“Sheet3”,所以将"sheet1"改为“Sheet1”即可。


关键字:Python读写excel

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: