关于对有数据的 excel 表追加数据的 2 种方式

一 安装略 xlutils openpyxl

二 excel 追加数据的 2 中方式

import xlrd
import xlutils
import xlwt
from xlutils.copy import copy
import openpyxl

方式一 利用 xlutils 复制的方式

path_xl = r’C:\Users\WY\Desktop\wy.xls’
def write_excel(path_xl_):
"""
将处理好的 doc 数据写入一个列表 然后在一一 写入 excel 并保存不覆盖
:param path_menu_: doc 文件
:param path_OA_: excel 文件
:return:
"""
old_excel = xlrd.open_workbook(path_xl,formatting_info=True) #打开一个 excel 对象
# 注意 formatting_info = True 目前针对的是.xls 文件,复制过来的时候带有原数据的格式,例如背景颜色等
wb = copy(old_excel)# 进行复制
old_wbs= old_excel.sheet_by_index(0) #按照索引方式找到第一个 sheet
ncols = old_wbs.ncols # 原数据的最大列数
rcols = old_wbs.nrows # 原数据的最大行数
new_ws = wb.get_sheet(0) #新文件的第一个 sheet

# 写入方式1  单元格(按照索引,行索引,列索引)
# new_ws.write(0, 1, '3333333!') #示例
# 写入方式2  通过循环写入(需要处理好的一个列表)
for row_index in range(rcols):
    for col_index in range(ncols):
            new_ws.write(row_index+10, col_index,old_wbs.cell(row_index,col_index).value)#这里是要插入的数据 随笔一现有的数据为例
wb.save(path_xl)##同名覆盖,内容不变

write_excel(path_xl)

方式二 利用 openpyxl

path_xl = r’C:\Users\WY\Desktop\wy.xlsx’
def write_excel(path_xl_):
"""
将处理好的 doc 数据写入一个列表 然后在一一 写入 excel 并保存不覆盖
:param path_OA_: excel 文件
:return:
"""
wb = openpyxl.load_workbook(path_xl_)# 实例一个对象
wb_sheet_names = wb.get_sheet_names()# 获取 sheet 名字列表
wb_sheet_name1 = wb.get_sheet_by_name(wb_sheet_names[0])# 获取 sheet 名称(内按照索引)
nrows = wb_sheet_name1.max_row #最大行数
ncols = wb_sheet_name1.max_column #最大列数

# 写入方式1  单元格(按照索引,行索引,列索引)
# wb_sheet_name1['A8']="奥迪" #示例

# 写入方式2  通过append 追加写入最后一行 或者多行
# row_data_1 = [888, 999]
# wb_sheet_name1.append(row_data_1)
row_data_s = [[333,444],[555,666]]
for row_data in range(len(row_data_s)):
    wb_sheet_name1.append(row_data_s[row_data])
print("保存成功")
wb.save(path_xl_) ###同名覆盖,内容不变

write_excel(path_xl)