`
jinheking
  • 浏览: 77707 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

python 读取excel(ZT)

阅读更多


import win32com.client
import os
import time

class Excel:
     def __init__(self, filename=None, configuration = None):
  
         self.xApp = win32com.client.Dispatch(' Excel.Application ')
         self.Config = configuration
        
         #start info.  
         #reading configuation file    
         print "Setting standard font: %s" % self.Config['FONT'] 
         self.xApp.StandardFont = self.Config['FONT']
        
         print "Setting standard size: %s" % str(TextSize)     
         self.xApp.StandardFontSize = TextSize

         #check configuration file        
         if os.path.exists( self.Config['DATAPATH'] ) :
             pass
         else:
             print "Error: The given data path doesn't exist" 
             self.close()
         
         # name of report
         if filename:
             self.Filename = filename
             try:
                 self.xBook = self.xApp.Workbooks.Open(filename)
             except:
                 print "Error: Open file %s failed" % filename 
         else:
                           
             self.xBook = self.xApp.Workbooks.Add()
             reportname = self.Config['PROJECT']+ '_R'+ self.Config['VERSION'] + '_' + time.strftime("%Y%m%d") + '_IssueReport'
             self.Filename = os.path.join( self.Config['PATH'], reportname)
             Name = self.Filename + '.xls'
      
           # if the file exists, rename new file as format oldname(number) 
             try:
                 if os.path.exists ( Name ):
                     number = 2
                    
                     # test new name
                     while 1:                             
                         Name = self.Filename + "(" + str(number) + ").xls"                        
                         if os.path.exists ( Name ):
                             number += 1     
                             continue
                         else :
                             break
                    
                     self.Filename = self.Filename + "(" + str(number) + ").xls"   
                     print "Given name has been used, rename new report to %s" % self.Filename 
                 else:
                     self.Filename += '.xls'
                    
                 print "Report name: %s" % self.Filename   
                 self.xBook.SaveAs( self.Filename )
                 print "Report file was created"
             except:
                 print "Error: creating file failed"

  
     def save(self, newfilename=None):
        
         print "Saving report to %s" % self.Config['PATH']
         if newfilename:
             self.Filename = newfilename
             self.xBook.SaveAs(newfilename)
         else:
             self.xBook.Save()
         print "Report saved"

  
     def close(self):
         self.xBook.Close(SaveChanges=0)
         # close error msg 
         del self.xApp

     def show(self):
         print "Show generated report"
         self.xApp.Visible = 1
    
     def delSheet(self, sheet):
         sht = self.xBook.Worksheets(sheet) 
        
         try:
             sht.Delete()
             print "sheet %s is deleted" % sheet
         except:
             print "Error: Delete sheet %s failed" % sheet

     def hide(self): 
         self.xApp.Visible = 0

     # get value from cell
     def getCell(self,sheet, row, col):
         "Get value of one cell"
         sht = self.xBook.Worksheets(sheet)
         return sht.Cells (row, col).Value


     # set value for cell
     def setCell(self, sheet,   row, col, value=None, formula=None):
        
         sht = self.xBook.Worksheets(sheet)
         if formula :
                 sht.Cells(row, col).Formula = formula
         else:
                 sht.Cells(row, col).Value = value


     # return tuple
     def getRange(self, sheet, row1, col1, row2, col2):
         "return a 2d array ( i.e. tuple of tuples)"
         sht = self.xBook.Worksheets(sheet)
         return sht.Range(sht.Cells(row1, col1), sht.Cells(row2, col2)).Value

  
  
     # set tuple   for range
     def setRange(self, sheet, topRow, leftCol, data): 
         '''
         set range data from a tuple
         '''      
         if type( data ) == types.TupleType:
            
             bottomRow = topRow + len(data) - 1
             rightCol = leftCol + len(data[0]) - 1 
             length = len(data)
         else:
             bottomRow = topRow 
             rightCol = leftCol
             length = 1
         sht = self.xBook.Worksheets(sheet)
        
         if( length > MaxAccept):     
             times = length/MaxAccept;
             i = 0;    
             # Multiple * MaxAccept data
             while( i < times ):
                
                 sht.Range(
                 sht.Cells (topRow + i*MaxAccept, leftCol), 
                 sht.Cells(topRow + (i+1)*MaxAccept - 1, rightCol)
                 ).Value = data[i*MaxAccept: (i+1)*MaxAccept]
                
                 i += 1
                 
             # additional data besides Multiple MaxAccept
             sht.Range(
                 sht.Cells(topRow + times * MaxAccept, leftCol), 
                 sht.Cells(bottomRow, rightCol)
                 ).Value = data[times * MaxAccept:] 
                
            
         else:
             sht.Range(
                 sht.Cells(topRow, leftCol), 
                 sht.Cells(bottomRow, rightCol)
                 ).Value = data
                


     # rename a work sheet
     def setSheetName(self, sheet, name):
         '''
         Rename a sheet
         '''
         sht = self.xBook.Worksheets(sheet)
        
         #logging    
         print "Rename sheet %s to %s" % ( sheet , name )
         sht.Name = name 

分享到:
评论

相关推荐

    Python读取Excel文件.zip

    python读取excel数据:Python读取Excel文件Python读取Excel文件Python读取Excel文件Python读取Excel文件Python读取Excel文件Python读取Excel文件Python读取Excel文件Python读取Excel文件Python读取Excel文件Python...

    python读取excel中的日期进行告警

    python读取excel中的日期进行告警 python读取excel中的日期进行告警 python读取excel中的日期进行告警 python读取excel中的日期进行告警 python读取excel中的日期进行告警 python读取excel中的日期进行告警 python...

    Python 读取Excel、文本、CSV等不同类型数据 Python源码

    Python 读取Excel、文本、CSV等不同类型数据 Python源码Python 读取Excel、文本、CSV等不同类型数据 Python源码Python 读取Excel、文本、CSV等不同类型数据 Python源码Python 读取Excel、文本、CSV等不同类型数据 ...

    python读取excel数据绘制简单曲线图的完整步骤记录

    python读写excel文件有很多种方法: 用xlrd和xlwt进行excel读写 用openpyxl进行excel读写 用pandas进行excel读写 本文使用xlrd读取excel文件(xls,sxls格式),使用xlwt向excel写入数据 一、xlrd和xlwt的安装 安装...

    python读取excel文件例子

    Python提供了多个库来方便地读取和写入Excel文件,其中最常用的是`pandas`库和`openpyxl`库。本例子将重点介绍如何使用Python通过`pandas`库来读取Excel文件。 首先,`pandas`是一个强大的数据处理库,它提供了...

    python读取Excel并写入.zip

    Python提供了多个库来实现Excel文件的读取与写入,其中最常用的是`pandas`库和`openpyxl`库。这里我们将重点讨论如何使用这两个库进行Excel文件的操作。 首先,让我们了解`pandas`库。`pandas`是Python中一个强大的...

    pydoct-python读取excel数据

    pydoct python读取excel数据 python读取excel数据 python读取excel数据 python读取excel数据 python读取excel数据

    Msptest-python读取excel数据

    demodemodemo python读取excel数据 python读取excel数据 python读取excel数据 python读取excel数据 python读取excel数据

    python读写excel文件

    python读写excel

    python读取Excel中的数据,然后写进word

    代码用于读Excel中的数据,然后批量写进word,文件的读写有专门的类,对于批量处理excel很有帮助

    python读取excel数据,分组数据自动生成shell脚本,并转换为unix格式

    用pandas读取excel数据,并把数据分组保存在txt文件里,自动生成shell脚本,把window的格式转换为unix格式可直接拖到linux执行shell脚本

    python读取Excel

    利用python的xlrd读取Excel,正确读取合并的单元格数据,并打印所有单元格的数据

    excel_python写入excel_python读取EXCEL_pythonexcel_

    本篇文章将详细介绍如何使用Python进行Excel文件的读取和写入操作。 首先,我们要引入必要的库。`pandas`库是处理数据的强大工具,它提供了便捷的方法来读取和写入Excel文件;而`openpyxl`库则用于更复杂的工作,如...

    数据预处理,python读取excel数据,分类属性数值化

    本篇文章将深入探讨如何使用Python读取Excel数据,并将分类属性数值化。 首先,我们需要引入必要的库。`pandas`库是处理结构化数据的首选,它提供了DataFrame对象,可以方便地处理Excel、CSV等格式的数据。`numpy`...

    python读取excel数据

    python读取excel数据

Global site tag (gtag.js) - Google Analytics