python 3 openpyxl 로 엑셀 표 데 이 터 를 처리 합 니 다.

코드 를 직접 붙 여 설명 이 분명 하 다.
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)

좋은 웹페이지 즐겨찾기