优草派 > Python

python3.7 openpyxl 在excel单元格中写入数据实例

王子涵         优草派

在现今的数据分析和处理中,Excel表格是一个不可或缺的工具。然而,由于Excel的处理能力有限,对于大规模数据的处理和分析会变得非常耗时和低效。因此,许多人选择使用Python来处理数据,而openpyxl是Python中一个非常流行的Excel读写库。本文将介绍如何使用Python3.7 openpyxl在Excel单元格中写入数据,包括基本的单元格写入、批量写入和格式化写入。

基本的单元格写入

python3.7 openpyxl 在excel单元格中写入数据实例

首先,我们需要安装openpyxl库。可以通过在终端上输入以下命令来安装:

pip install openpyxl

接下来,我们需要创建一个新的工作簿,并在其中创建一个新的工作表。以下是Python代码示例:

```python

from openpyxl import Workbook

# 创建一个工作簿

workbook = Workbook()

# 选中工作表

worksheet = workbook.active

# 在单元格A1中写入数据

worksheet['A1'] = 'Hello, World!'

# 保存工作簿

workbook.save('example.xlsx')

```

在上述示例中,我们使用Workbook()函数创建了一个新的工作簿,然后使用active属性选择了默认工作表。接下来,我们使用单元格的坐标来选择单元格,然后使用赋值语句向它们写入数据。在这个例子中,我们向单元格A1写入了“Hello, World!”。最后,我们使用save()函数将工作簿保存在本地磁盘上。

批量写入

在处理大规模数据时,单元格的批量写入是非常重要的。以下是Python代码示例:

```python

from openpyxl import Workbook

# 创建一个工作簿

workbook = Workbook()

# 选中工作表

worksheet = workbook.active

# 准备数据

data = [

['Apple', '100', 'Red'],

['Banana', '200', 'Yellow'],

['Orange', '300', 'Orange'],

['Grape', '400', 'Purple']

]

# 批量写入数据

for i in range(len(data)):

for j in range(len(data[i])):

cell = worksheet.cell(row=i+1, column=j+1)

cell.value = data[i][j]

# 保存工作簿

workbook.save('example.xlsx')

```

在此示例中,我们使用两个for循环遍历数据列表,并在每个单元格上使用cell()函数。最后,我们使用value属性将数据写入单元格中。在这个例子中,我们向单元格A1、B1、C1、A2、B2、C2、A3、B3、C3、A4、B4和C4写入了“Apple”、“100”、“Red”、“Banana”、“200”、“Yellow”、“Orange”、“300”、“Orange”、“Grape”和“400”、“Purple”。

格式化写入

有时,我们需要使用格式化写入来更好地呈现数据。以下是Python代码示例:

```python

from openpyxl import Workbook

from openpyxl.styles import Alignment, Font, PatternFill

# 创建一个工作簿

workbook = Workbook()

# 选中工作表

worksheet = workbook.active

# 准备数据

data = [

['Apple', '100', 'Red'],

['Banana', '200', 'Yellow'],

['Orange', '300', 'Orange'],

['Grape', '400', 'Purple']

]

# 批量写入数据

for i in range(len(data)):

for j in range(len(data[i])):

cell = worksheet.cell(row=i+1, column=j+1)

cell.value = data[i][j]

# 格式化单元格

for i in range(1, worksheet.max_column+1):

worksheet.column_dimensions[chr(64+i)].width = 20

for i in range(1, worksheet.max_row+1):

worksheet.row_dimensions[i].height = 30

for j in range(1, worksheet.max_column+1):

cell = worksheet.cell(row=i, column=j)

if i == 1:

cell.font = Font(bold=True, color='FFFFFF')

cell.fill = PatternFill(start_color='000000', end_color='000000', fill_type='solid')

cell.alignment = Alignment(horizontal='center', vertical='center')

else:

if j == 1:

cell.font = Font(bold=True)

cell.alignment = Alignment(horizontal='center', vertical='center')

if j == 2:

cell.number_format = '#,##0'

cell.alignment = Alignment(horizontal='center', vertical='center')

if j == 3:

color = data[i-2][2]

cell.fill = PatternFill(start_color=color, end_color=color, fill_type='solid')

cell.alignment = Alignment(horizontal='center', vertical='center')

# 保存工作簿

workbook.save('example.xlsx')

```

在此示例中,我们使用了openpyxl.styles模块来设置单元格的字体、填充和对齐方式。我们还使用了column_dimensions和row_dimensions属性来设置列和行的宽度和高度。在这个例子中,我们使用了以下格式:

- 第一行的字体为粗体,颜色为白色,背景为黑色,水平和垂直对齐方式为居中。

- 第一列的字体为粗体,水平和垂直对齐方式为居中。

- 第二列的数字格式为千位分隔符,水平和垂直对齐方式为居中。

- 第三列的单元格填充颜色为数据列表中的颜色,水平和垂直对齐方式为居中。

  • 微信好友

  • 朋友圈

  • 新浪微博

  • QQ空间

  • 复制链接

取消
5天短视频训练营
新手入门剪辑课程,零基础也能学
分享变现渠道,助你兼职赚钱
限时特惠:0元
立即抢
新手剪辑课程 (精心挑选,简单易学)
第一课
新手如何学剪辑视频? 开始学习
第二课
短视频剪辑培训班速成是真的吗? 开始学习
第三课
不需要付费的视频剪辑软件有哪些? 开始学习
第四课
手机剪辑app哪个好? 开始学习
第五课
如何做短视频剪辑赚钱? 开始学习
第六课
视频剪辑接单网站APP有哪些? 开始学习
第七课
哪里可以学短视频运营? 开始学习
第八课
做短视频运营需要会什么? 开始学习
【原创声明】凡注明“来源:优草派”的文章,系本站原创,任何单位或个人未经本站书面授权不得转载、链接、转贴或以其他方式复制发表。否则,本站将依法追究其法律责任。

客服热线:0731-85127885

湘ICP备19005950号-1  

工商营业执照信息

违法和不良信息举报

举报电话:0731-85127885 举报邮箱:tousu@csai.cn

优草派  版权所有 © 2024