序言
1 Excel基本操作
获得行列基本信息,设置行列宽度,高度,字体等。
#!/usr/bin/env python3
# -*- coding:GBK -*-
import win32com.client
import os, sys, logging,re
from logging import debug, info
#logging.basicConfig( level = logging.DEBUG, format = '[%(filename)s %(lineno)d ] %(message)s')
logging.basicConfig( level = logging.DEBUG, format = ' %(message)s')
def get_full_name(name):
if ':' in name:
return name
else:
name = os.path.join(os.getcwd(), name)
return name
class Excel(object):
def __init__(self, filename ):
self.filename = get_full_name(filename)
self.sheetcount = 0
def open(self, name=''):
if(name!=''): self.filename = os.path.join(os.getcwd(), name )
self.excel = win32com.client.Dispatch("Excel.Application")
#可见
self.excel.Visible = 1
#book
self.excelbook = self.excel.Workbooks.Open(self.filename, ReadOnly=False)
info("open excel: %s", self.filename )
self.sheet = self.excelbook.Worksheets(self.excelbook.Worksheets.Count)
#self.excel.Workbooks.Add()
self.sheetcount = 1
##
info( self.sheet.cells( 3,1).Value ) #行,列
for i in range(1,10):
self.sheet.cells( i,3).Value = "hello world "+str(i)
#获取一列数据
self.sheet.Columns(1).Font.Bold = True #第一列加粗
self.sheet.Columns(1).Font.Name = "宋体" #字体
self.sheet.Columns(1).Font.Color = -16776961 #字体颜色
#设置列宽
print("列宽: ", self.sheet.Columns(1).ColumnWidth )
self.sheet.Columns(3).ColumnWidth = 30 #设置列宽
info("已经使用行数count : %s"%self.sheet.usedrange.rows.count )
info("已经使用列数count : %s"%self.sheet.usedrange.columns.count )
#获得一行数据
#info( self.sheet.Rows(1) )
self.sheet.Rows(1).RowHeight = 30 #设置行高度
def new_sheet(self, name=''):
if (self.sheetcount == 0): self.open()
#operate first sh