#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Date : 2016-08-21 12:54:12
# @Author : Your Name (you@example.org)
# @Link : http://example.org
# @Version : $Id$

import os
import xlwt
import xlrd
from xlutils.copy import copy
from datetime import date
import time


def getMonAndDay():
today = date.today()
return str(today.month) + 'm' + str(today.day)+'d'

class excelutil(object):
"""docstring for excelutil"""
def __init__(self, fileName):
super(excelutil, self).__init__()
self.fileName = fileName
self.readExcel(fileName)

def readExcel(self,fileName):
if not os.path.exists(fileName):
fileExcel = xlwt.Workbook()
fileExcel.add_sheet(getMonAndDay())
fileExcel.save(self.fileName)

self.rbdata = xlrd.open_workbook(self.fileName)
self.wbdata = copy(self.rbdata)
self.setCurrentTableByIndex(0)

def setCurrentTableByIndex(self,index):
self.rbtable = self.rbdata.sheet_by_index(index)
self.wbtable = self.wbdata.get_sheet(index)

def setCurrentTableByName(self,sheetName):
sheetNames = self.rbdata.sheet_names()
tmpIndex = 0
for x in xrange(0,len(sheetNames)):
if sheetNames[x] == sheetName:
tmpIndex =x
self.wbtable = self.wbdata.get_sheet(tmpIndex)
self.rbtable = self.rbdata.sheet_by_name(sheetName)

def getValues(self,col,row):
if self.rbtable == None:
return 'current rbtable is null'
# 这个值是rbtable 可能和wbtable值不一样(setValues 没有保存值就不一样) saveExcel()保存一下就会更新
return self.rbtable.cell(row,col).value

def setValues(self,col,row,value):
self.wbtable.write(row,col,value)

def addSheet(self,sheetName,new=False): #new = true 有重名的加一个时间后缀 强制创建新的
isexist = False
for name in self.rbdata.sheet_names():
if name == sheetName :
if new :
sheetName = sheetName+ str(time.time())
isexist = True
if new or not isexist:
self.wbdata.add_sheet(sheetName)
self.saveExcel()
self.setCurrentTableByName(sheetName)
# self.setCurrentTableByName(0)


def saveExcel(self):
self.wbdata.save(self.fileName)
self.readExcel(self.fileName)
if __name__ == '__main__':	excel = excelutil('demo.xls')	excel.addSheet('sheet2')	# # print excel.getValues(2,0)	excel.setValues(3,50,'dddd')		excel.saveExcel()	print excel.getValues(3,50)

 

更多相关文章

  1. python正则表达式匹配时间和IP地址
  2. GetLastInputInfo等价于Linux,用于检测最后的输入时间
  3. python subprocess模块 监控子进程的2种方式 忙等待和立即返回同
  4. date时间加减(linux,aix)
  5. 查看/修改Linux时区和时间
  6. linux中常用时间和字符串之间相互转化
  7. linux时间管理 之 jiffies
  8. linux 时间同步的2种方法(转)
  9. linux系统时间和硬件时钟问题(date和hwclock)

随机推荐

  1. Android中添加syslog功能
  2. SMS Library in Android
  3. android历史版本对应的api等级
  4. android ndk开发-环境搭建
  5. Android 打开Activity后,不显示键盘
  6. Android几款著名的ActiveSync客户端
  7. android 在SD卡创建文件夹
  8. Android 通信录中的联系人操作
  9. Android SDK Tools R15 发布
  10. android 复制、粘贴文字