Excel是一款常用的办公软件,而Python是一种强大的编程语言,将两者结合使用可以实现更多的功能和操作。本文将从多个方面对Excel Python交互进行详细阐述。
一、读取Excel数据
1、使用pandas库读取Excel文件
import pandas as pd
# 读取Excel文件
df = pd.read_excel('data.xlsx')
print(df.head())
2、使用xlrd库读取Excel文件
import xlrd
# 打开Excel文件
workbook = xlrd.open_workbook('data.xlsx')
sheet = workbook.sheet_by_index(0)
# 读取数据
for row in range(sheet.nrows):
for col in range(sheet.ncols):
print(sheet.cell_value(row, col))
二、写入Excel数据
1、使用pandas库写入Excel文件
import pandas as pd
# 创建数据
data = {'Name': ['Tom', 'Jerry', 'Alice'], 'Age': [25, 30, 35]}
# 将数据转为DataFrame
df = pd.DataFrame(data)
# 写入Excel文件
df.to_excel('output.xlsx', index=False)
2、使用xlwt库写入Excel文件
import xlwt
# 创建Excel文件
workbook = xlwt.Workbook()
sheet = workbook.add_sheet('Sheet1')
# 写入数据
data = [['Name', 'Age'], ['Tom', 25], ['Jerry', 30], ['Alice', 35]]
for row in range(len(data)):
for col in range(len(data[row])):
sheet.write(row, col, data[row][col])
# 保存Excel文件
workbook.save('output.xls')
三、操作Excel单元格
1、使用openpyxl库操作Excel文件
from openpyxl import Workbook
# 创建Excel文件
workbook = Workbook()
sheet = workbook.active
# 设置单元格值
sheet['A1'] = 'Name'
sheet['B1'] = 'Age'
sheet['A2'] = 'Tom'
sheet['B2'] = 25
# 保存Excel文件
workbook.save('output.xlsx')
2、使用xlutils库操作Excel文件
import xlrd
from xlutils.copy import copy
# 打开Excel文件
workbook = xlrd.open_workbook('data.xlsx')
sheet = workbook.sheet_by_index(0)
# 复制Excel文件
new_workbook = copy(workbook)
new_sheet = new_workbook.get_sheet(0)
# 修改单元格值
new_sheet.write(1, 1, 'Jerry')
new_sheet.write(1, 2, 30)
# 保存Excel文件
new_workbook.save('output.xls')
四、处理Excel公式
1、使用openpyxl库处理Excel公式
from openpyxl import Workbook
from openpyxl.utils import get_column_letter
from openpyxl.formula import Tokenizer
# 创建Excel文件
workbook = Workbook()
sheet = workbook.active
# 设置单元格公式
sheet['A1'] = 'A2 + A3'
sheet['A2'] = 10
sheet['A3'] = 20
# 计算公式结果
tokenizer = Tokenizer()
for cell in sheet.iter_rows():
for cell in cell:
if cell.data_type == 'f':
parsed_formula = tokenizer.parse(cell.value)
cell.value = parsed_formula.value
# 保存Excel文件
workbook.save('output.xlsx')
2、使用xlwings库处理Excel公式
import xlwings as xw
# 打开Excel文件
app = xw.App(visible=False)
app.display_alerts = False
app.screen_updating = False
workbook = app.books.open('data.xlsx')
sheet = workbook.sheets[0]
# 更新公式结果
sheet.calculate()
# 保存Excel文件
workbook.save('output.xlsx')
workbook.close()
app.quit()
五、其他Excel操作
1、使用openpyxl库操作Excel工作表
from openpyxl import Workbook
# 创建Excel文件
workbook = Workbook()
sheet1 = workbook.create_sheet('Sheet1', 0)
sheet2 = workbook.create_sheet('Sheet2', 1)
# 删除工作表
del workbook['Sheet']
# 重命名工作表
sheet1.title = 'New Sheet'
# 保存Excel文件
workbook.save('output.xlsx')
2、使用pyxlsb库操作Excel二进制文件
import pyxlsb
# 打开Excel文件
with pyxlsb.open_workbook('data.xlsb') as workbook:
with workbook.get_sheet(1) as sheet:
for row in sheet.rows():
for cell in row:
print(cell.v)
六、使用VBA宏与Python交互
1、使用pywin32库调用Excel VBA宏
import win32com.client as win32
# 打开Excel应用程序
excel = win32.gencache.EnsureDispatch('Excel.Application')
# 打开工作簿
workbook = excel.Workbooks.Open(r'C:pathtofile.xlsm')
# 运行VBA宏
excel.Application.Run("Module1.Macro1")
# 关闭工作簿
workbook.Close()
# 退出Excel应用程序
excel.Quit()
2、使用xlwings库与Python交互编写VBA宏
import xlwings as xw
# 打开Excel文件
app = xw.App(visible=False)
app.display_alerts = False
app.screen_updating = False
workbook = app.books.open(r'C:pathtofile.xlsm')
sheet = workbook.sheets[0]
# 编写VBA宏
sheet.api.CodeModule.AddFromString("""Sub Macro1()
MsgBox "Hello, World!"
End Sub""")
# 运行VBA宏
sheet.api.Macro1()
# 保存Excel文件
workbook.save(r'C:pathtofile.xlsm')
workbook.close()
app.quit()
七、总结
通过Python与Excel的交互,我们可以实现诸如读取、写入、操作单元格、处理公式等功能。这极大地扩展了Excel的应用范围,使其更加灵活和强大。