-
引言
- Excel文件在数据处理中扮演着重要的角色,而使用Python来读写和处理Excel文件已经成为许多开发者的首选。在本篇博文中,我们将介绍如何使用Python中的两个主要库——openpyxl和xlsxwriter,来读取和写入Excel文件
-
准备工作
- python3.x
- openpyxl和xlsxwriter都是python第三方库,使用前需要安装再导入
pip install openpyxl
pip install xlsxwriter
-
使用openpyxl读取Excel文件
- openpyxl是一个功能强大的库,它可以让我们轻松地读取和操作Excel文件,下面将演示使用openpyxl读取excel文件的两种方式
-
方式一:按单元格读取
#!/usr/bin/env python3 # coding:utf-8 import openpyxl # 文件路径 path = r"excel文件的路径" # 打开Excel文件 workbook = openpyxl.load_workbook(path) # 选择工作表 sheet = workbook['Sheet1'] # 读取单元格数据 cell_value = sheet['A1'].value print(cell_value) # 关闭Excel文件 workbook.close()
-
方式二:按行或按列读取
#!/usr/bin/env python3 # coding:utf-8 import openpyxl # 文件路径 path = r"excel文件的路径" # 打开Excel文件 workbook = openpyxl.load_workbook(path) # 选择工作表 sheet = workbook['Sheet1'] # 读取行数据 row_values = [] for row in sheet.iter_rows(min_row=2, values_only=True): row_values.append(row) print(row_values) # 读取列数据 column_values = [] for column in sheet.iter_cols(min_col=2, values_only=True): column_values.append(column) print(column_values) # 关闭Excel文件 workbook.close()
-
封装成函数快速调用(推荐使用)
def read_excel(path, sheet_name='Sheet1', column_num=None): data = [] book = openpyxl.load_workbook(path, read_only=True) sheet = book[sheet_name] for row in sheet.iter_rows(min_row=1, values_only=True): if column_num: row_data = [str(row[num - 1]) for num in column_num] else: row_data = [str(cell) for cell in row] data.append(row_data) book.close() return data
-
使用xlsxwriter写入Excel文件
- xlsxwriter则是一个专门用于创建和写入Excel文件的库,它提供了丰富的功能和灵活的选项,使我们能够通过Python轻松地生成复杂的Excel文件
-
指定单元格写入数据
#!/usr/bin/env python3 # coding:utf-8 import xlsxwriter # 文件路径 path = r"excel文件的保存路径" # 创建Excel文件 workbook = xlsxwriter.Workbook(path) # 创建工作表 sheet = workbook.add_worksheet() # 写入数据 sheet.write('A1', 'Hello') sheet.write('B1', 'World') # 关闭Excel文件 workbook.close()
-
指定坐标写入
#!/usr/bin/env python3 # coding:utf-8 import xlsxwriter # 文件路径 path = r"excel文件的保存路径" # 创建Excel文件 workbook = xlsxwriter.Workbook(path) # 创建工作表 sheet = workbook.add_worksheet() # 写入数据 data = [['Alice', 25], ['Bob', 30], ['Charlie', 35]] for row, row_data in enumerate(data, start=2): sheet.write_row(row, 0, row_data) # 关闭Excel文件 workbook.close()
-
写入普通文件
def save_excel(_ls, path, _sheet_name='Sheet1', batch_size=10000): _book = xlsxwriter.Workbook(path, options={'strings_to_urls': False}) _sheet = _book.add_worksheet(_sheet_name) batch_size = batch_size for i in range(0, len(_ls), batch_size): batch_data = _ls[i:i + batch_size] for _i in range(len(batch_data)): for __i in range(len(batch_data[_i])): _sheet.write(_i + i, __i, str(batch_data[_i][__i])) _book.close() # 传入_ls的数据格式:_ls = [['Alice', 25], ['Bob', 30], ['Charlie', 35]]
-
写入带格式的文件(将json文件写入excel)
def save_excel(_ls, path, _sheet_name='Sheet1', batch_size=10000): _book = xlsxwriter.Workbook(path, options={'strings_to_urls': False}) _sheet = _book.add_worksheet(_sheet_name) batch_size = batch_size for i in range(0, len(_ls), batch_size): batch_data = _ls[i:i + batch_size] for _i in range(len(batch_data)): for __i in range(len(batch_data[_i])): _sheet.write(_i + i, __i, json.dumps(batch_data[_i][__i], ensure_ascii=False, indent=2)) _book.close()
-
总结
- 通过学习使用openpyxl和xlsxwriter库,您将能够快速、高效地处理Excel文件并进行数据分析。这对于从事数据处理、报告生成等工作的开发者来说是非常有价值的
Excel数据处理利器揭秘:openpyxl和xlsxwriter的强强联手
于 2024-03-05 21:41:56 首次发布