python3 使用openpyxl 处理excel表格数据

直接贴代码,注释很清楚

import openpyxl
import time
import os
import threading
class mExcelManager:

    def __init__(self,filerootpath,filename):
        self.allmodels = []
        self.zimu = ["A", "B", "C", "D", "E", "F",
                     "G", "H", "I", "J", "K", "L",
                     "M", "N", "O", "P", "Q", "R",
                     "S", "T", "U", "V", "W", "X",
                     "Y", "Z"]
        self.filerootpath = filerootpath
        self.filename = filename
        self.result_excel_name = ""

    # 读取excel表格
    def read_excel_data(self,defaultmax_column=12):
        wb = openpyxl.load_workbook(filename=self.filename, read_only=True, )
        ws = wb.active
        model = []
        print(ws.max_row)
        for index in range(2, ws.max_row):
            if model.__len__() > 1:
                self.allmodels.append(model)
                model = []
                # print("read datas =>")
            if self.allmodels.__len__() == 200:
                time.sleep(0.1)
                continue
            for rowindex in range(1,defaultmax_column):
                data = ws[""+self.zimu[rowindex] + str(index)].value
                model.append(data)

    #写入excel表格,写入速度比较慢
    def write_to_excel(self,file_path_name):
        wb = openpyxl.load_workbook(filename=file_path_name)
        ws = wb.active
        start_time = time.time()
        count = 0
        while (True):
            if self.allmodels.__len__() > 0:
                model = self.allmodels.pop(0)
                ws.append(model)
                wb.save(file_path_name)
                count = count + 1
                currenttime = time.time()
                useseconds = int(currenttime) - int(start_time)
                print("write datas "+ " time:" + str(useseconds) +" count: " + str(count))
            else:
                time.sleep(0.01)
                continue
    # 创建表格
    def create_excel(self,filename,sheet_name = "",title = ""):
        self.result_excel_name = filename
        wb = openpyxl.Workbook()
        if sheet_name.__len__()>0:
            wb.create_sheet("Name", 0)
        ws = wb.active
        if title.__len__() >0:
            ws.title = "bob"
        wb.save(filename=filename)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值