第2节,使用openpyxl 创建excel 文件

1. 创建一个新的excel文件

import openpyxl

wb = openpyxl.Workbook()        # 创建一个excel文件
sheet = wb.active               # 获得一个的工作表
sheet.title = "首都信息"

wb 代表一个excel文件,wb自动带有一个sheet对象,这与你手动创建一个excel文件时自动带有一个sheet(工作簿) 是相同的。通过active方法可以获得到这个已经创建好的sheet。

如果一个sheet不能满足你的工作需要,你可以使用create_sheet创建出更多的sheet对象。

sheet = wb.create_sheet(title="新的sheet")

2. 向sheet 写入数据

data是一个字典,保存了国家与首都之间的对应关系

data = {
    '中国': '北京',
    '韩国': '首尔',
    '日本': '东京',
    '泰国': '曼谷',
    '马来西亚': '吉隆坡',
    '越南': '河内',
    '朝鲜': '平壤',
    '印度': '新德里'
    }

接下来,我需要先设置标题行

sheet['A1'] = '国家'
sheet['B1'] = '首都'

通过单元格的名称定位到单元格并赋值,这是最直接的方式,适合对固定位置的单元格进行赋值,接下来,需要填写国家与首都的信息,就不适合采用这种方法了。

row = 2     # 从第2行开始
for key, value in data.items():
    sheet.cell(row, 1, key)
    sheet.cell(row, 2, value)
    row += 1

cell 方法需要指定单元格的行和列,他们都是从1开始的,第一行已经设置成标题行,因此从第二行开始。

3. 保存单元格

wb.save("./国家首都.xlsx")

最终成效的效果如下图所示

4. 更便捷的写入数据方式

除了cell方法可以为单元格设置值意外,还可以使用append方法,操作起来更加方便

for key, value in data.items():
    sheet.append([key, value])

append方法支持一次添加一行数据,传入的实参必须是可迭代对象,列表或者元组都可以。

5. 全部代码

import openpyxl

wb = openpyxl.Workbook()        # 创建一个excel文件
sheet = wb.active               # 获得一个的工作表
sheet.title = "首都信息"

sheet['A1'] = '国家'
sheet['B1'] = '首都'

data = {
    '中国': '北京',
    '韩国': '首尔',
    '日本': '东京',
    '泰国': '曼谷',
    '马来西亚': '吉隆坡',
    '越南': '河内',
    '朝鲜': '平壤',
    '印度': '新德里'
    }

for key, value in data.items():
    sheet.append((key, value))

wb.save("./国家首都.xlsx")

扫描关注, 与我技术互动

QQ交流群: 211426309

加入知识星球, 每天收获更多精彩内容

分享日常研究的python技术和遇到的问题及解决方案