Python+Selenium 写入数据到excel文件

  • 作者:lwj
  • 分类:Selenium
  • 发表日期:2020-10-15 21:39:29
  • 阅读(731)
  • 评论(0)

安装xlwt和xlutils

xlwt用来写数据到excel文件   xlutils复制excel中旧表数据到新表

pip install xlwt
pip install xlutils

实现思路

1. 写入数据的excel文件不存在通过xlwt创建文件和定义excel表名
2. 写入数据的excel文件存在则通过xlrd打开并定位第一个表并获取其数据总行数
3. 通过xlutils.copy的copy方法复制旧数据并重新保存到新表
4. 获取转化后工作簿中的第一个表并追加写入数据
5. 首行空行数据追加后再次定义标题行与其格式

实现方法

#!/usr/bin/python3
# coding=utf-8
# Author: 文


from os.path import join
from time import strftime
import xlrd
import xlwt
from xlutils.copy import copy


excel_path = "G:\\work_script"          # 写入的excel文件路径
now_time = strftime("%Y-%m-%d-%H")      # 获取时间戳为excel文件名和表名


# 创建excel追加数据到表中
class Write_Excel():
    def __init__(self):
        self.path = excel_path
        self.name = now_time + ".xls"
        self.filename = join(self.path, self.name)

    # 设置表格样式
    def set_style(self, name, height, bold=False):
        style = xlwt.XFStyle()
        font = xlwt.Font()
        font.name = name
        font.bold = bold
        font.color_index = 4
        font.height = height
        style.font = font
        return style

    # 新建excel文件
    def new_excel(self):
        f = xlwt.Workbook()
        f.add_sheet(now_time, cell_overwrite_ok=True)           # 新增excel中表now_time
        f.save(self.filename)
        print("文件【%s】创建成功" % self.name)

    # 对excel文件写入数据
    def add_to_excel(self, values):
        try:
            workbook = xlrd.open_workbook(self.filename)        # excel文件存在则直接打开
        except FileNotFoundError:                               # excel文件不存在则先创建在打开
            self.new_excel()
            workbook = xlrd.open_workbook(self.filename)
        sheets = workbook.sheet_names()                         # 获取工作簿中的所有表格
        worksheet = workbook.sheet_by_name(sheets[0])           # 获取工作簿中所有表格中的的第一个表格
        rows_old = worksheet.nrows                              # 获取表格中已存在的数据的行数
        if rows_old == 0:                                       # 跳过首行写入,留存为标题行
           rows_old = 1
        new_workbook = copy(workbook)                           # 将xlrd对象拷贝转化为xlwt对象,旧数据复制保存
        new_worksheet = new_workbook.get_sheet(0)               # 获取转化后工作簿中的第一个表格
        i = 0
        for value in values:
            new_worksheet.write(rows_old, i, value)             # 追加写入数据,从rows_old行开始写入
            i += 1
        print(" 文件【{0}】表【{1}】第【{2}】行追加数据{3}".format(self.name, now_time, rows_old, values))
        # 定义标题行信息
        title_row = ["ID", "title", "method", "URL", "payload", "result", "time/s"]
        for n in range(0, len(title_row)):
            new_worksheet.write(0, n, title_row[n], self.set_style('Times New Roman', 220, True))
        new_workbook.save(self.filename)                        # 保存excel文件


if __name__ == "__main__":
    values_1 = [1, "百度搜索", "百度-百度搜索", "https://www.baidu.com", "Selenium", "pass", "4"]
    values_2 = [2, "百度搜索", "百度-百度搜索", "https://www.baidu.com", "Python", "error", "5"]
    Write_Excel().add_to_excel(values=values_1)
    Write_Excel().add_to_excel(values=values_2)

结果预览

觉得不错,支持一下!

提交评论

您尚未登录,登录之后方可评论~ 登录 or 注册

评论列表

暂无评论
返回顶部

建议反馈

1. 可在博文底部留言评论

2. 发邮件到i_suichuan@163.com