使用python库xlrd和openpyxl实现excel文件格式xls转为xlsx格式

使用python库xlrd和openpyxl实现excel文件格式xls转为xlsx格式

由于Python库对excel文件格式有要求,但是实际操作中会有不同格式偏重,所以如果你感觉openpyxl好用,那么xls转换为xlsx格式的文件代码你可能用的到,也是自己写完之后想自己记个笔记方便自己以后找的方便

#-*- coding:utf8 -*-
import xlrd
from openpyxl import Workbook
#将指定的xls文件转换为xlsx格式
def xls_to_xlsx(src_file_path,dst_file_path):
    """
    将指定的xls文件转换为xlsx格式
    :param src_file_path: xls文件路径
    :param dst_file_path: xlsx文件路径
    """
    #打开xls文件
    wb_xls = xlrd.open_workbook(f'{src_file_path}')
    #获取所有sheet名称
    names = wb_xls.sheet_names()
    #我们以第一个sheet内容复制到xlsx文件为例,如有多个sheet要复制加循环即可
    #获取xls文件第一个sheet对象
    ws_xls = wb_xls.sheet_by_name(names[0])
    #查看第一个sheet有多少行和列数据
    nrows = ws_xls.nrows
    ncols = ws_xls.ncols
    print(nrows,ncols)
    
    #读取xls第一个sheet内容存到写入列表中
    sheet_msg_xls = []
    for i in range(nrows):
        sheet_msg_xls.append(ws_xls.row_values(i))
    print(len(sheet_msg_xls))
    #创建xlsx文件并写入到对应文件中,一般文件同名,sheet名称一致
    wb_xlsx = Workbook()
    #在xlsx创建同名sheet
    ws_xlxs = wb_xlsx.create_sheet(f'{names[0]}')
    #把xls sheet内容写入到 xlsx同名sheet中
    for row in sheet_msg_xls:
        #一行一行的写入
        ws_xlxs.append(row)
    #保存xlsx格式文件
    wb_xlsx.save(f'{dst_file_path}')    
    

你可能感兴趣的:(python,excel,开发语言)