首页 > 编程知识 正文

Excel Python交互用法介绍

时间:2023-11-20 15:19:31 阅读:301907 作者:UVCH

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的应用范围,使其更加灵活和强大。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。