来公司的第一个任务,就是用Python写一个自动处理excel的脚本,需要实现的功能为:1.读取外部的参数 2.从一个excel表格中读取公式和文本信息 3.将1中的参数带入到2中的公式中计算出结果并写入一个新建的excel表格中。
于是我的Python学习之路就此拉开序幕,学习之路需要脚踏实地,一步一个脚印,勉励自己能够坚持的记录下去~
项目的源代码如下:
#! /usr/bin/env python
# -*- coding:utf-8 –*-
import xlrd
import xlwt
#import sys
#reload(sys)
#sys.setdefaultencoding('utf-8')
def format_xlsx():
font0 = xlwt.Font()
font0.name = 'Times New Roman'
font0.colour_index = 2
font0.height=225
font0.bold = True
alignment = xlwt.Alignment()
alignment.horz = xlwt.Alignment.HORZ_CENTER
pattern = xlwt.Pattern()
pattern.pattern = xlwt.Pattern.SOLID_PATTERN
pattern.pattern_fore_colour = 5
style = xlwt.XFStyle()
style.font=font0
style.alignment = alignment
style.pattern = pattern
return style
def open_xlsx(file='f.xlsx'):
data=xlrd.open_workbook(file)
return data
def cal_xlsx(file='f.xlsx',sheet_index=0,width=1,height=1,frames=1,style=1,save_file='result.xlsx'):
data=open_xlsx(file)
table=data.sheets()[sheet_index]
#---------------------
file_w=xlwt.Workbook()
table_w=file_w.add_sheet(data.sheet_names()[sheet_index],cell_overwrite_ok=True)
#--------------------
tab_row=table.nrows
tab_col=table.ncols
rowv=table.row_values(0)
colv=table.col_values(0)
for x in range(1,tab_col):
table_w.write_merge(0,0,(x*2-1),x*2,rowv[x],style)
table_w.col(x*2-1).width = 8000
for y in range(0,tab_row):
table_w.write(y,0,colv[y],style)
for row in range(1,table.nrows):
for col in range(1,table.ncols):
formula0=table.cell(row,col).value
table_w.write(row,col*2-1,formula0.replace('width',str(width)).replace(