zoukankan      html  css  js  c++  java
  • python-excel操作-(2)(读数据,封装成类)

    class ExcelHandle_1:

      def __init__(self,file_name,sheet_name):

        #file_name为文件存放地址,sheet_name为表单名字
        self.file_name=file_name

        self.sheet_name=sheet_name

        #打开file_name这个.xlsx文件
        self.wb=openpyxl.load_workbook(file_name)

      #读取指定表单得所有数据,并以dict形式输出

      def read_all(self,sheet_name):

        #对输入表单进行判断,若没有输入就默认生成第一个表单位置
        if sheet_name is None:
          ws=self.wb.active
        else:
          ws=self.wb.get_sheet_by_name(sheet_name)

          #通过遍历拿取表头得信息,并以列表得形式返回
          header=[c.value for c in ws[1]]

          #通过获取最大row与column进行遍历 使用cell().value方法拿到所有值并返回列表,并与表头得列表信息使用diz方法进行重新组合成一对一关系,并转换成字典返回
          max_row=ws.max_row
          max_column=ws.max_column
          test_data=[]
          for row in range(2,max_row+1):
            row_data=[]
            for coloumn in range(1,max_column+1):
              row_data.append(ws.cell(row,coloumn).value)
            row_data=dict(zip(header,row_data))
            test_data.append(row_data)
          return test_data
      #写入数据,需要写入得数据需要是str类型
      def write_data(self,row,result,actul):
        sheet=self.wb.get_sheet_by_name(self.sheet_name)
        column_result=eval(Read_config(Config_Http).get_value('excelcolumn','column_result'))
        column_actual=eval(Read_config(Config_Http).get_value('excelcolumn','column_catual'))
        #修改坐标row,column的值
        sheet.cell(row,column_result).value=result
        sheet.cell(row,column_actual).value=actul
        #保存文档
        self.save_data()
        #保存数据并关闭文档
      def save_data(self):
        self.wb.save(self.file_name)
        self.wb.close()

  • 相关阅读:
    sqlite3 多线程和锁 ,优化插入速度及性能优化
    Android Touch事件传递机制通俗讲解
    26. Remove Duplicates from Sorted Array----Array----Easy----20160927
    88. Merge Sorted Array----Array----Easy----20160926
    @121. Best Time to Buy and Sell Stock----Array----Easy---20160926
    88. Merge Sorted Array----Array----Easy----20160925
    189. Rotate Array----Array----Easy----20160925
    169. Majority Element----Array----Easy----20160925
    219. Contains Duplicate II 超时
    c++Map容器 详解
  • 原文地址:https://www.cnblogs.com/newsss/p/12070834.html
Copyright © 2011-2022 走看看