Python读写 Excel 文件

本文详细介绍了使用Python进行Excel文件操作的方法,包括使用xlsxwriter、xlwt和xlrd库创建、追加和读取Excel文件的具体步骤,适用于需要批量处理Excel数据的场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

import xlrd
import xlwt
import xlsxwriter
import os
from xlutils.copy import copy


def write_excel_xlsxwriter(path, sheet_name, value):
    # 获取需要写入数据的行数
    index = len(value)

    # 新建一个工作簿
    workbook = xlsxwriter.Workbook(path)
    # 在工作簿中新建一个表格
    sheet = workbook.add_worksheet(sheet_name)
    for i in range(0, index):
        for j in range(0, len(value[i])):
            # 向表格中写入数据(对应的行和列)
            sheet.write(i, j, value[i][j])
    # 保存工作簿
    workbook.close()
    print("表格写入数据成功!")

def write_excel_xlwt(path, sheet_name, value):
    # 获取需要写入数据的行数
    index = len(value)

    # 新建一个工作簿
    workbook = xlwt.Workbook(path)
    # 在工作簿中新建一个表格
    sheet = workbook.add_sheet(sheet_name)
    for i in range(0, index):
        for j in range(0, len(value[i])):
            # 向表格中写入数据(对应的行和列)
            sheet.write(i, j, value[i][j])
    # 保存工作簿
    workbook.save(path)
    print("表格写入数据成功!")

#追加写入
def write_excel_xls_append(path, value):
    # 获取需要写入数据的行数
    index = len(value)
    # 打开工作簿
    workbook = xlrd.open_workbook(path)
    # 获取工作簿中的所有表格
    sheets = workbook.sheet_names()
    # 获取工作簿中所有表格中的的第一个表格
    worksheet = workbook.sheet_by_name(sheets[0])
    # 获取表格中已存在的数据的行数
    rows_old = worksheet.nrows

    # 将xlrd对象拷贝转化为xlwt对象
    new_workbook = copy(workbook)

    # 获取转化后工作簿中的第一个表格
    new_worksheet = new_workbook.get_sheet(0)
    for i in range(0, index):
        for j in range(0, len(value[i])):
            # 追加写入数据,注意是从 i+rows_old行开始写入
            new_worksheet.write(i + rows_old, j, value[i][j])
    # 保存工作簿
    new_workbook.save(path)
    print("表格【追加】写入数据成功!")


def read_excel_xls(path):
    # 打开工作簿
    workbook = xlrd.open_workbook(path)
    # 获取工作簿中的所有表格
    sheets = workbook.sheet_names()
    # 获取工作簿中所有表格中的的第一个表格
    worksheet = workbook.sheet_by_name(sheets[0])
    for i in range(0, worksheet.nrows):
        for j in range(0, worksheet.ncols):
            print(worksheet.cell_value(i, j), "\t", end="")  # 逐行逐列读取数据
        print()

if __name__  == '__main__' :
    book_name_xls = '测试工作簿.xlsx'

    sheet_name_xls = 'Excel测试表'
    
    value_title = [["姓名", "性别", "年龄", "城市", "职业"] ]

    value1 = [["张三", "男", "19", "杭州", "研发工程师"],
              ["李四", "男", "22", "北京", "医生"],
              ["王五", "女", "33", "珠海", "出租车司机"], ]

    value2 = [["Tom", "男", "21", "西安", "测试工程师"],
              ["Jones", "女", "34", "上海", "产品经理"],
              ["Cat", "女", "56", "上海", "教师"], ]

    if os.path.exists(book_name_xls):
      os.remove(book_name_xls)
    # write_excel_xlwt(book_name_xls, sheet_name_xls, value_title)
    write_excel_xlsxwriter(book_name_xls, sheet_name_xls, value_title)
    write_excel_xls_append(book_name_xls, value1)
    write_excel_xls_append(book_name_xls, value2)
    read_excel_xls(book_name_xls)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值