当前位置:主页 > 软件编程 > Python代码 >

Python自动化办公之Excel数据的写入

时间:2022-11-27 10:21:01 | 栏目:Python代码 | 点击:

上一章节我们学习了 excel 的读取模块 - xlrd ,今天章节将学习 excel 的写入模块 - xlsxwriter 。通过该章节的学习,就可以自己主动生成 excel 文件了。

Excel 写入 - xlsxwriter

xlsxwriter 的安装

安装方式:

pip install xlsxwriter

若安装不上或者安装速度过慢,可以换国内的镜像源地址:pip install -i https://pypi.tuna.tsinghua.edu.cn/simple xlsxwriter

导入:

import xlsxwriter

xlsxwriter 常用函数介绍

初始化 excel 对象

book = xlsxwriter.Workbook()    # 生成 excel 对象
sheet = book.add.sheet(工作簿名称)    # 生成 excel 对象的工作簿名称

获取工作簿

函数名 说明 参数
xlsxwriter.Workbook() 生成 excel 对象 excel 文件名
add_worksheet() 添加工作簿 工作簿名称
sheet.write() 书写内容 行索引、列索引、内容
book.close() 关闭 excel 对象

代码示例如下:

# coding:utf-8

import xlsxwriter  # pip install xlsxwriter

excel = xlsxwriter.Workbook('write.xlsx')       # 初始化 excel 对象
book = excel.add_worksheet('study')             # 添加工作簿

title = ['姓名', '性别', '年龄', '成绩', '等级']   # 定义 write.xlsx 的首行内容

for index, data in enumerate(title):        # for循环 利用枚举函数将 title 的内容写入 "write.xlsx" 的首行
    book.write(0, index, data)
excel.close()

运行结果如下:

小实战

将项目中的 study.xlsx 文件的内容写入 write.xlsx

代码示例如下:

# coding:utf-8

import xlsxwriter  # pip install xlsxwriter
import xlrd

# excel = xlsxwriter.Workbook('write.xlsx')       # 初始化 excel 对象
# book = excel.add_worksheet('study')             # 添加工作簿
#
# title = ['姓名', '性别', '年龄', '成绩', '等级']   # 定义 write.xlsx 的首行内容
#
# for index, data in enumerate(title):        # for循环 利用枚举函数将 title 的内容写入 "write.xlsx" 的首行
#     book.write(0, index, data)
# excel.close()

def read():             # 定义一个 read 函数读取 "study.xlsx" 文件
    result = []
    excel = xlrd.open_workbook('study.xlsx')
    book = excel.sheet_by_name('学生手册')
    for i in book.get_rows():
        content = []
        for j in i:
            content.append(j.value)
        result.append(content)
    return result


def write(content):     # 定义一个 write 函数 将读取到 "study.xlsx" 的内容写入到 "write.xlsx" 文件
    excel = xlsxwriter.Workbook('write.xlsx')
    book = excel.add_worksheet('study')

    for index, data in enumerate(content):
        print(data)		# 调试打印写入的每一行内容
        for sub_index, sub_data in enumerate(data):
            # print(sub_index, sub_data)
            book.write(index, sub_index, sub_data)
    excel.close()

if __name__ == '__main__':
    result = read()
    write(result)

运行结果如下:

您可能感兴趣的文章:

相关文章