Python利用openpyxl读写Excel文件

电子说

1.3w人已加入

描述

Python利用openpyxl读取Excel文件

使用wb.active属性选择默认工作表或者使用wb['工作表名称']选择指定名称的工作表。

读取多个单元格:可以使用for循环遍历单元格,或者使用sheet.iter_rows()或sheet.iter_cols()函数来读取多个单元格的值。

# 遍历单元格
for row in sheet.rows:
    for cell in row:
        print(cell.value)

# 使用iter_rows()函数读取多个单元格
for row in sheet.iter_rows(min_row=1, max_col=3, max_row=2):
    for cell in row:
        print(cell.value)

# 使用iter_cols()函数读取多个单元格
for column in sheet.iter_cols(min_row=1, max_col=3, max_row=2):
    for cell in column:
        print(cell.value)
当存在空白单元格或None时,可以使用以下方式将None值转换为空字符串:
for row in sheet.rows:
    for cell in row:
        if cell.value is None:
            cell.value = ""
上述代码会遍历工作表中的所有单元格,将值为None的单元格赋值为空字符串。 下面是一个简单读取Excel文件的例子:
import openpyxl

wb = openpyxl.load_workbook('test.xlsx')
sheet = wb.active  # 选择默认工作表
#sheet = wb['test1']  # 选择名为'test1'的工作表

#None值转换为空字符串
for row in sheet.rows:
    for cell in row:
        if cell.value is None:
            cell.value = ""
            
#遍历所有单元格的值
for row in sheet.rows:
    for cell in row:
        print(cell.value, end="	")
    print()
wb.close()

 

运行结果如下:

Excel

利用openpyxl写入Excel文件

使用openpyxl模块创建一个新的工作簿,并选择默认的工作表,workbook=openpyxl.Workbook()中“W”需要大写。

 

import openpyxl

workbook=openpyxl.Workbook()
worksheet = workbook.active
worksheet.title="test1"

#写入的数据
Name=['Tom', 'Lily' ]
Age=['25', '23']
Project=['Name', 'Age']

#写入第一行数据,行号和列号都从1开始计数
for i in range(len(Project)):
    worksheet.cell(1, i+1,Project[i])
 
#写入第一列数据,因为第一行已经有数据了,i+2
for i in range(len(Name)):
    worksheet.cell(i+2,1,Name[i])
 
#写入第二列数据
for i in range(len(Age)):
    worksheet.cell(i+2,2,Age[i])

workbook.save(filename='openpyxl_write.xlsx')

 
Excel

 

Python中用openpyxl,pandas,xlrd和xlwt的区别:

这些库都是Python中用于处理Excel的工具,但是它们之间存在一些不同之处。 openpyxl:openpyxl是用于读取和写入Excel 2010(xlsx/xlsm/xltx/xltm)格式Excel的Python库。它可以读取、修改和保存Excel文件,支持Excel文件的样式、公式和图表。此外,它还支持大型Excel和工作簿,并提供了许多高级功能,如命名区域、数据透视表和图表。 pandas:Pandas是一个Python数据分析库,可以处理各种数据集,包括Excel。它可以读取和写入Excel、CSV和SQL等格式的数据,具有强大的数据处理、转换和分析功能。Pandas可以将Excel数据转换为数据框(DataFrame),并使用Pandas的数据分析工具对其进行操作。 xlrd:xlrd是一个Python库,用于读取Excel的数据。它支持读取Excel 2003及之前版本的.xls文件,但不支持写入文件。xlrd提供了一种简单的方式来读取Excel中的数据和元数据,如单元格的格式、样式和公式等。 xlwt:xlwt是一个Python库,用于写入Excel 2003及之前版本的.xls文件。它可以创建新的Excel表格,或修改现有的Excel表格。xlwt支持设置单元格的格式、样式和公式等。


所以,如果要读取或写入Excel 2010及之后版本的Excel表格,可以使用openpyxl;

如果需要进行数据分析和转换,可以使用Pandas;

如果要读取Excel 2003及之前版本的Excel表格,可以使用xlrd;

如果要创建或修改Excel 2003及之前版本的Excel表格,可以使用xlwt。

   审核编辑:汤梓红

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分