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")
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开始的,第一行已经设置成标题行,因此从第二行开始。
wb.save("./国家首都.xlsx")
最终成效的效果如下图所示
除了cell方法可以为单元格设置值意外,还可以使用append方法,操作起来更加方便
for key, value in data.items():
sheet.append([key, value])
append方法支持一次添加一行数据,传入的实参必须是可迭代对象,列表或者元组都可以。
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