python 操作excel 读写同一个文件
16lz
2021-01-22
#!/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)
更多相关文章
- python正则表达式匹配时间和IP地址
- GetLastInputInfo等价于Linux,用于检测最后的输入时间
- python subprocess模块 监控子进程的2种方式 忙等待和立即返回同
- date时间加减(linux,aix)
- 查看/修改Linux时区和时间
- linux中常用时间和字符串之间相互转化
- linux时间管理 之 jiffies
- linux 时间同步的2种方法(转)
- linux系统时间和硬件时钟问题(date和hwclock)