电子说
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()
运行结果如下:
利用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')
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。
审核编辑:汤梓红
全部0条评论
快来发表一下你的评论吧 !