Python表格存取方法:xlwt/xlrd、openpyxl与pandas对比

落日邮差
落日邮差
发布时间:2026-10-10 | 5人浏览过
原创

本文介绍Python中表格存取的方法,包括xlwt/xlrd、openpyxl和pandas库的使用。xlwt/xlrd适用于Excel文件,openpyxl支持.xlsx格式,pandas适合CSV文件处理。不同库原理相同,但写法有差异,建议无格式要求时存储为CSV文件。

Python表格存取的方法

在Python中,处理表格数据有多种库可供选择。常用的库包括xlwt/xlrd、openpyxl和pandas。这些库各有特点,适用于不同的场景。

xlwt/xlrd库

xlwt和xlrd库主要用于处理Excel文件。xlwt用于写入Excel文件,而xlrd用于读取Excel文件。这两个库的原理相同,但写法有所差别。

import xlwt 
 
workbook = xlwt.Workbook(encoding='utf-8') 
booksheet = workbook.add_sheet('Sheet 1', cell_overwrite_ok=True) 
#存第一行cell(1,1)和cell(1,2) 
booksheet.write(0,0,34) 
booksheet.write(0,1,38) 
#存第二行cell(2,1)和cell(2,2) 
booksheet.write(1,0,36) 
booksheet.write(1,1,39) 
#存一行数据 
rowdata = [43,56] 
for i in range(len(rowdata)): 
  booksheet.write(2,i,rowdata[i]) 
workbook.save('test_xlwt.xls') 

上述代码展示了如何使用xlwt库写入Excel文件。首先,创建一个工作簿,然后添加一个工作表。接着,通过write方法写入单元格数据。最后,保存工作簿。

import xlrd 
 
workbook = xlrd.open_workbook('D:\\Py_exercise\\test_xlwt.xls') 
print(workbook.sheet_names())         #查看所有sheet 
booksheet = workbook.sheet_by_index(0)     #用索引取第一个sheet 
booksheet = workbook.sheet_by_name('Sheet 1') #或用名称取sheet 
#读单元格数据 
cell_11 = booksheet.cell_value(0,0) 
cell_21 = booksheet.cell_value(1,0) 
#读一行数据 
row_3 = booksheet.row_values(2) 
print(cell_11, cell_21, row_3) 
 
>>>34.0 36.0 [43.0, 56.0] 

上述代码展示了如何使用xlrd库读取Excel文件。首先,打开工作簿,然后获取工作表。接着,通过cell_value方法读取单元格数据,通过row_values方法读取一行数据。

openpyxl库

openpyxl库主要用于处理.xlsx格式的Excel文件。它支持写入和读取Excel文件,且写法与xlwt/xlrd有所不同。

from openpyxl import Workbook 
  
workbook = Workbook() 
booksheet = workbook.active   #获取当前活跃的sheet,默认是第一个sheet 
#存第一行单元格cell(1,1) 
booksheet.cell(1,1).value = 6  #这个方法索引从1开始 
booksheet.cell("B1").value = 7 
#存一行数据 
booksheet.append([11,87]) 
workbook.save("test_openpyxl.xlsx") 

上述代码展示了如何使用openpyxl库写入Excel文件。首先,创建一个工作簿,然后获取当前活跃的工作表。接着,通过cell方法写入单元格数据,通过append方法写入一行数据。最后,保存工作簿。

from openpyxl import load_workbook 
  
workbook = load_workbook('D:\\Py_exercise\\test_openpyxl.xlsx') 
#booksheet = workbook.active        #获取当前活跃的sheet,默认是第一个sheet 
sheets = workbook.get_sheet_names()     #从名称获取sheet 
booksheet = workbook.get_sheet_by_name(sheets[0]) 
 
rows = booksheet.rows 
columns = booksheet.columns 
#迭代所有的行 
for row in rows: 
  line = [col.value for col in row] 
 
#通过坐标读取值 
cell_11 = booksheet.cell('A1').value 
cell_11 = booksheet.cell(row=1, column=1).value 

上述代码展示了如何使用openpyxl库读取Excel文件。首先,打开工作簿,然后获取工作表。接着,通过迭代所有行,读取单元格数据。最后,通过坐标读取特定单元格的值。

pandas库

pandas库主要用于处理CSV文件。它提供了简单而强大的数据操作功能,适合处理大规模数据。

import pandas as pd 
 
csv_mat = np.empty((0,2),float) 
csv_mat = np.append(csv_mat, [[43,55]], axis=0) 
csv_mat = np.append(csv_mat, [[65,67]], axis=0) 
csv_pd = pd.DataFrame(csv_mat) 
csv_pd.to_csv("test_pd.csv", sep=',', header=False, index=False) 

上述代码展示了如何使用pandas库写入CSV文件。首先,创建一个空的二维数组,然后追加数据。接着,将数据转换为DataFrame,最后保存为CSV文件。

import pandas as pd 
 
filename = "D:\\Py_exercise\\test_pd.csv" 
csv_data = pd.read_csv(filename, header=None) 
csv_data = np.array(csv_data, dtype=float) 

上述代码展示了如何使用pandas库读取CSV文件。首先,打开文件,然后读取数据。最后,将数据转换为NumPy数组。

总结

在Python中,处理表格数据有多种库可供选择。xlwt/xlrd适用于Excel文件,openpyxl支持.xlsx格式,pandas适合CSV文件处理。不同库原理相同,但写法有差异。建议无格式要求时存储为CSV文件,因为CSV文件读取非常简单。

以上就是Python表格存取方法的详细内容,更多关于Python表格存取的资料请关注本站其它相关文章!

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表