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、文本、CSV等不同类型数据 Python源码Python 读取Excel、文本、CSV等不同类型数据 Python源码Python 读取Excel、文本、CSV等不同类型数据 Python源码Python 读取Excel、文本、CSV等不同类型数据 ...
python读写excel文件有很多种方法: 用xlrd和xlwt进行excel读写 用openpyxl进行excel读写 用pandas进行excel读写 本文使用xlrd读取excel文件(xls,sxls格式),使用xlwt向excel写入数据 一、xlrd和xlwt的安装 安装...
Python提供了多个库来方便地读取和写入Excel文件,其中最常用的是`pandas`库和`openpyxl`库。本例子将重点介绍如何使用Python通过`pandas`库来读取Excel文件。 首先,`pandas`是一个强大的数据处理库,它提供了...
Python提供了多个库来实现Excel文件的读取与写入,其中最常用的是`pandas`库和`openpyxl`库。这里我们将重点讨论如何使用这两个库进行Excel文件的操作。 首先,让我们了解`pandas`库。`pandas`是Python中一个强大的...
python读取excel数据python读取excel数据源码.zippython读取excel数据源码.zippython读取excel数据源码.zippython读取excel数据源码.zippython读取excel数据源码.zippython读取excel数据源码.zippython读取excel数据...
pydoct python读取excel数据 python读取excel数据 python读取excel数据 python读取excel数据 python读取excel数据
demodemodemo python读取excel数据 python读取excel数据 python读取excel数据 python读取excel数据 python读取excel数据
python读写excel
在Python编程中,处理Excel文件是一项常见的任务,无论是数据分析、数据清洗还是自动化报告,都需要对Excel文件进行读取和写入。本篇将详细介绍如何使用Python来操作Excel文件,特别是对于初学者,以下内容将非常有...
代码用于读Excel中的数据,然后批量写进word,文件的读写有专门的类,对于批量处理excel很有帮助
用pandas读取excel数据,并把数据分组保存在txt文件里,自动生成shell脚本,把window的格式转换为unix格式可直接拖到linux执行shell脚本
利用python的xlrd读取Excel,正确读取合并的单元格数据,并打印所有单元格的数据
python读取excel数据 python读取excel数据.docx
python读取excel数据
python读取excel示例,内涵数据填充和操作举例,助你一份文件学会python操作excel
在Python编程中,读取Excel数据是一项常见的任务,特别是在数据分析和数据处理的场景下。这里我们将详细介绍两个常用的第三方库——openpyxl和pandas,它们提供了便捷的方式来操作Excel文件。 一、openpyxl库 ...