下面是详细讲解“如何用Python处理Excel表格”的完整实例教程。
1. 准备工作
在Python中处理Excel表格需要安装openpyxl
库,使用pip命令安装:
pip install openpyxl
2. 读取Excel表格数据
使用openpyxl
库可以很方便地读取Excel表格数据。假设我们有一个名为test.xlsx
的Excel文件,文件中只有一个名叫Sheet1
的工作表。我们可以使用以下代码读取出所有的单元格数据:
from openpyxl import load_workbook
wb = load_workbook('test.xlsx')
ws = wb['Sheet1']
for row in ws.rows:
for cell in row:
print(cell.value)
以上代码会输出test.xlsx
文件中Sheet1
工作表上所有单元格的值。ws.rows
方法返回行的生成器,通过遍历行的生成器,再遍历每个单元格,我们可以获取每个单元格的值。注意:读取单元格值时使用cell.value
获取单元格值。
3. 写入Excel表格数据
使用openpyxl
库写入Excel表格数据也非常方便。假设我们已经读取出Excel表格中的数据,并对数据进行了处理。我们可以使用以下代码将处理后的数据写入到test.xlsx
文件中的一个名为Sheet2
的工作表:
from openpyxl import Workbook
wb = Workbook()
ws = wb.active
data = [['姓名', '年龄', '性别'], ['张三', 18, '男'], ['李四', 19, '女'], ['王五', 20, '男']]
for row in data:
ws.append(row)
wb.save('test.xlsx')
以上代码会创建一个新的工作簿,并在其中创建一个工作表。将data
数据中的每一行作为一行数据写入到工作表中。然后保存工作簿,即可完成数据的写入操作。
4. 示例说明
接下来,我们给出两个示例说明,分别演示如何批量读取多个Excel表格,并将数据写入到新的工作簿中。
示例一:批量读取并合并多个Excel表格
假设我们需要读取一个文件夹下的多个Excel表格,并将数据合并到一个新的工作簿中。我们可以使用以下代码来实现:
import os
from openpyxl import load_workbook, Workbook
folder_path = 'path/to/your/folder' # 指定文件夹路径
wb_new = Workbook()
ws_new = wb_new.active
for file in os.listdir(folder_path):
if file.endswith('.xlsx'): # 只处理Excel文件
file_path = os.path.join(folder_path, file)
wb = load_workbook(file_path)
ws = wb.active
for row in ws.rows:
row_values = [cell.value for cell in row]
ws_new.append(row_values)
wb_new.save('merged.xlsx')
以上代码会循环迭代文件夹中的所有Excel文件,将每个文件中的所有行数据写入到新的工作表中,最终生成一个名为merged.xlsx
的新的工作簿,其中包括所有Excel文件中的行数据。
示例二:将多个Excel表格数据按照固定格式写入新的工作表
假设我们有两个Excel表格,分别为data1.xlsx
和data2.xlsx
,两个表格的格式相同。我们需要将这两个表格中的数据按照固定格式写入到一个新的Excel表格中。我们可以使用以下代码实现:
from openpyxl import load_workbook, Workbook
wb_new = Workbook()
ws_new = wb_new.active
data_list = []
# 读取第一个Excel表格中的数据
wb1 = load_workbook('data1.xlsx')
ws1 = wb1.active
for row in ws1.rows:
row_values = [cell.value for cell in row]
data_list.append(row_values)
# 读取第二个Excel表格中的数据
wb2 = load_workbook('data2.xlsx')
ws2 = wb2.active
for row in ws2.rows:
row_values = [cell.value for cell in row]
data_list.append(row_values)
# 将数据按照指定格式写入到新的工作表
ws_new.append(['姓名', '年龄', '性别'])
for data in data_list:
name = data[0]
age = data[1]
gender = data[2]
ws_new.append([name, age, gender])
wb_new.save('output.xlsx')
以上代码的执行结果是将data1.xlsx
和data2.xlsx
中的所有行数据按照固定格式写入到output.xlsx
文件中。注意:在写入新的工作表时,每一行数据都需要包括姓名
、年龄
、性别
三个字段。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:如何用python处理excel表格 - Python技术站