美文网首页
python读写excel

python读写excel

作者: Ontheway_40d3 | 来源:发表于2023-10-21 17:27 被阅读0次

1.Excel中有xls和xlsx两种格式,它们之间的区别是:

文件格式不同。xls是一个特有的二进制格式,其核心结构是复合文档类型的结构,而xlsx的核心结构是XML类型的结构,采用的是基于 XML的压缩方式,使其占用的空间更小。xlsx 中最后一个 x 的意义就在于此。

版本不同。xls是Excel2003及以前版本生成的文件格式,而xlsx是Excel2007及以后版本生成的文件格式。

兼容性不同。xlsx格式是向下兼容的,可兼容xls格式。

2.读写xls

2.1读取xls

workbook = xlrd.open_workbook(url)

2.2写入xls

 workbook = xlwt.Workbook()

2.3追加写入xls

def write_xls_excel_add(url, two_dimensional_data, index):

    '''

    追加写入xls格式文件

    参数:

        url:文件路径

        two_dimensional_data:将要写入表格的数据(二维列表)

        index:指定要追加的表的序号(第几个工作表,传入参数从1开始数)

    '''

    # 打开指定的工作簿

    workbook = xlrd.open_workbook(url)

    # 获取工作簿中的所有表格

    sheets = workbook.sheet_names()

    # 获取指定的表

    worksheet = workbook.sheet_by_name(sheets[index-1])

    # 获取表格中已存在的数据的行数

    rows_old = worksheet.nrows

    # 将xlrd对象拷贝转化为xlwt对象

    new_workbook = copy(workbook)

    # 获取转化后工作簿中的第index个表格

    new_worksheet = new_workbook.get_sheet(index-1)

    # 遍历每一行数据

    for i in range(0, len(two_dimensional_data)):

        # 遍历每一列数据

        for j in range(0, len(two_dimensional_data[i])):

            # 追加写入数据,注意是从i+rows_old行开始写入

            new_worksheet.write(i+rows_old, j, two_dimensional_data[i][j])

    # 保存工作簿

    new_workbook.save(url)

    print("追加写入成功")

3.读写xlsx

3.1读取xlsx格式文件

def read_xlsx_excel(url, sheet_name):

    '''

    读取xlsx格式文件

    参数:

        url:文件路径

        sheet_name:表名

    返回:

        data:表格中的数据

    '''

    # 使用openpyxl加载指定路径的Excel文件并得到对应的workbook对象

    workbook = openpyxl.load_workbook(url)

    # 根据指定表名获取表格并得到对应的sheet对象

    sheet = workbook[sheet_name]

    # 定义列表存储表格数据

    data = []

    # 遍历表格的每一行

    for row in sheet.rows:

        # 定义表格存储每一行数据

        da = []

        # 从每一行中遍历每一个单元格

        for cell in row:

            # 将行数据存储到da列表

            da.append(cell.value)

        # 存储每一行数据

        data.append(da)

    # 返回数据

    return data

3.2写入xlsx格式文件

def write_xlsx_excel(url, sheet_name, two_dimensional_data):

    '''

    写入xlsx格式文件

    参数:

        url:文件路径

        sheet_name:表名

        two_dimensional_data:将要写入表格的数据(二维列表)

    '''

    # 创建工作簿对象

    workbook = openpyxl.Workbook()

    # 创建工作表对象

    sheet = workbook.active

    # 设置该工作表的名字

    sheet.title = sheet_name

    # 遍历表格的每一行

    for i in range(0, len(two_dimensional_data)):

        # 遍历表格的每一列

        for j in range(0, len(two_dimensional_data[i])):

            # 写入数据(注意openpyxl的行和列是从1开始的,和我们平时的认知是一样的)

            sheet.cell(row=i + 1, column=j + 1, value=str(two_dimensional_data[i][j]))

    # 保存到指定位置

    workbook.save(url)

    print("写入成功")

3.3追加写入xlsx格式文件

def write_xlsx_excel_add(url, sheet_name, two_dimensional_data):

    '''

    追加写入xlsx格式文件

    参数:

        url:文件路径

        sheet_name:表名

        two_dimensional_data:将要写入表格的数据(二维列表)

    '''

    # 使用openpyxl加载指定路径的Excel文件并得到对应的workbook对象

    workbook = openpyxl.load_workbook(url)

    # 根据指定表名获取表格并得到对应的sheet对象

    sheet = workbook[sheet_name]

    for tdd in two_dimensional_data:

        sheet.append(tdd)

    # 保存到指定位置

    workbook.save(url)

    print("追加写入成功")

相关文章

网友评论

      本文标题:python读写excel

      本文链接:https://www.haomeiwen.com/subject/wbnlidtx.html