前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python操作Excel的一些基本程序代码

Python操作Excel的一些基本程序代码

作者头像
fanjy
发布2023-02-24 20:52:04
1.1K0
发布2023-02-24 20:52:04
举报
文章被收录于专栏:完美Excel完美Excel

标签:Python与Excel

下面是一些示例代码,演示使用Python操作Excel的一些常用操作。

打开Excel并添加工作簿

下面的脚本代码简单地调用Excel,添加工作簿并将空工作簿保存在默认文件夹中。

代码语言:javascript
复制
import win32com.client as win32
excel = win32.gencache.EnsureDispatch('Excel.Application')
wb = excel.Workbooks.Add()
wb.SaveAs('sample.xlsx')
excel.Application.Quit()

打开现有工作簿

下面的脚本代码打开现有工作簿并通过指定excel.Visible=True来显示该工作簿。

代码语言:javascript
复制
import win32com.client as win32
excel = win32.gencache.EnsureDispatch('Excel.Application')
wb = excel.Workbooks.Open(r'C:\Users\excelperfect\Documents\sample.xlsx')
excel.Visible = True

添加工作表

下面的脚本代码创建一个新工作簿,添加新工作表,将其命名为MyNewSheet,并保存到默认文件夹中。

代码语言:javascript
复制
import win32com.client as win32
excel = win32.gencache.EnsureDispatch('Excel.Application')
wb = excel.Workbooks.Add()
ws = wb.Worksheets.Add()
ws.Name = "MyNewSheet"
wb.SaveAs('new_sample.xlsx')
excel.Application.Quit()

单元格区域和偏移

下面的脚本代码演示使用cells()和Range()运算符获取单元格地址的不同技术。单个单元格可以使用Cells(row,column),其中row是行号,column是列号。行和列编号从1开始。

可以使用Range()获取单个单元格或单元格区域地址,其中括号中的参数可以是双引号中的单个单元格名称(例如,“A2”)、由冒号分隔并由双引号包围的两个单元格名称的区域(例如“A3:B4”)或由两个cells()标识符表示的区域(如ws.cells(1,1),ws.Cells(2,2))。Offset()方法提供了一种基于对另一个单元格的引用来获取单元格地址的方法。

代码语言:javascript
复制
import win32com.client as win32
excel = win32.gencache.EnsureDispatch('Excel.Application')
wb = excel.Workbooks.Add()
ws = wb.Worksheets("Sheet1")
ws.Cells(1,1).Value = "完美Excel"
ws.Cells(1,1).Offset(2,4).Value = "excelperfect"
ws.Range("A2").Value = "公众号"
ws.Range("A3:B4").Value = "34"
ws.Range("A6:B7,A9:B10").Value = "67910"
ws.SaveAs('cell_sample.xlsx')
excel.Application.Quit()

自动填充单元格内容

下面的脚本代码使用Excel的自动填充功能检测单元格A1和A2中的数据,然后自动填充至单元格A10。脚本代码在单元格A1中输入1,在单元格A2中输入2,并自动填充区域A1:A10。因此,单元格A1:A10将填充1、2、3、4,……,10。

代码语言:javascript
复制
import win32com.client as win32
excel = win32.gencache.EnsureDispatch('Excel.Application')
wb = excel.Workbooks.Add()
ws = wb.Worksheets("Sheet1")
ws.Range("A1").Value = 1
ws.Range("A2").Value = 2
ws.Range("A1:A2").AutoFill(ws.Range("A1:A10"),win32.constants.xlFillDefault)
wb.SaveAs('autofill_sample.xlsx')
excel.Application.Quit()

单元格颜色

下面的脚本使用Interior.ColorIndex方法为单元格添加内部(背景)颜色。

代码语言:javascript
复制
import win32com.client as win32
excel = win32.gencache.EnsureDispatch('Excel.Application')
wb = excel.Workbooks.Add()
ws = wb.Worksheets("Sheet1")
for i in range(1, 21):
 ws.Cells(i, 1).Value = i
 ws.Cells(i, 1).Interior.ColorIndex = i
wb.SaveAs('color_sample.xlsx')
excel.Application.Quit()

列格式

下面的脚本创建两列数据,一列窄,一列宽,然后通过设置ColumnWidth属性设置列宽的格式。还可以使用Columns.AutoFit()函数自动调整电子表格中的所有列。

代码语言:javascript
复制
import win32com.client as win32
excel = win32.gencache.EnsureDispatch('Excel.Application')
wb = excel.Workbooks.Add()
ws = wb.Worksheets("Sheet1")
ws.Range("A1:A10").Value = "E"
ws.Range("B1:B10").Value = "完美Excel公众号欢迎你"
ws.Columns(1).ColumnWidth = 1
ws.Range("B:B").ColumnWidth = 29
wb.SaveAs('colwidth_sample.xlsx')
excel.Application.Quit()

从一个工作表复制数据到另一个工作表

下面的脚本使用FillAcrossSheets()方法将数据从一个工作表复制到工作簿中的所有其他工作表。

代码语言:javascript
复制
import win32com.client as win32
excel = win32.gencache.EnsureDispatch('Excel.Application')
wb = excel.Workbooks.Add()
ws = wb.Worksheets.Add()
ws = wb.Worksheets.Add()
ws = wb.Worksheets("Sheet1")
ws.Range("A1:J10").Formula = "=row()*column()"
wb.Worksheets.FillAcrossSheets(wb.Worksheets("Sheet1").Range("A1:J10"))
wb.SaveAs('copy_Sample.xlsx')
excel.Application.Quit()

格式化工作表单元格

下面的脚本创建两列数据,然后设置工作表中使用的字体类型和字体大小的格式。

代码语言:javascript
复制
import win32com.client as win32
excel = win32.gencache.EnsureDispatch('Excel.Application')
wb = excel.Workbooks.Add()
ws = wb.Worksheets('Sheet1')
for i, font in enumerate(["Arial", "Courier New", "等线", "微软雅黑", "宋体"]):
 ws.Range(ws.Cells(i+1, 1), ws.Cells(i+1,2)).Value = [font, i+i]
 ws.Range(ws.Cells(i+1, 1), ws.Cells(i+1,2)).Font.Name = font
 ws.Range(ws.Cells(i+1, 1), ws.Cells(i+1,2)).Font.Size = 12+i
ws.Range("A1:A5").HorizontalAlignment = win32.constants.xlRight
ws.Range("B1:B5").NumberFormat = "$###,##0.00"
ws.Columns.AutoFit()
wb.SaveAs('format_sample.xlsx')
excel.Application.Quit()

设置行高

下面的脚本创建一些示例数据,然后调整数据的行高度和对齐方式。可以使用RowHeight方法设置行高度,也可以使用AutoFit()基于单元格内容自动调整行高度。

代码语言:javascript
复制
import win32com.client as win32
excel = win32.gencache.EnsureDispatch('Excel.Application')
wb = excel.Workbooks.Add()
ws = wb.Worksheets("Sheet1")
ws.Range("A1:A2").Value = "小"
ws.Range("B1:B2").Value = "小\n兔"
ws.Range("C1:C2").Value = "一只\n小\n兔"
ws.Range("D1:D2").Value = "这是\n一只\n小\n兔"
ws.Rows(1).RowHeight = 60
ws.Range("2:2").RowHeight = 120
ws.Rows(1).VerticalAlignment = win32.constants.xlCenter
wb.SaveAs('rowheight_sample.xlsx')
excel.Application.Quit()

注:代码中的pywin32库在https://pypi.org/project/pywin32。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2023-01-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 完美Excel 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档