码迷,mamicode.com
首页 > 其他好文 > 详细

以工作表的方式合并excel

时间:2015-09-10 17:47:15      阅读:186      评论:0      收藏:0      [点我收藏+]

标签:python excel worksheet

#!/usr/bin/env python
import xlsxwriter,xlrd
import sys,os.path
reload(sys) 
sys.setdefaultencoding(‘utf8‘)
def MergeExcelToWorksheet(*arg):
	lfile=arg
	fname={}
	worksheet={}
	for h in lfile:
		fname[h] = h
		print h
		data = xlrd.open_workbook(fname[h])            # 打开fname文件
		data.sheet_names()                          # 获取xls文件中所有sheet的名称
		table = data.sheet_by_index(0)              # 通过索引获取xls文件第0个sheet
		nrows = table.nrows                         # 获取table工作表总行数
		ncols = table.ncols                         # 获取table工作表总列数
		#workbook = xlsxwriter.Workbook(‘hh.xlsx‘)  #创建一个excel文件 
		worksheet[h] = workbook.add_worksheet(str(h))        #创建一个工作表对象
        	worksheet[h].set_column(0,ncols,20)            #设定列的宽度为22像素
     		#border:边框,align:对齐方式,bg_color:背景颜色,font_size:字体大小,bold:字体加粗
        	top = workbook.add_format({‘border‘:1,‘align‘:‘center‘,‘bg_color‘:‘cccccc‘,‘font_size‘:13,‘bold‘:True})
        	text = workbook.add_format({‘border‘:1,‘align‘:‘center‘,‘bg_color‘:‘white‘,‘font_size‘:12})
        	blank = workbook.add_format({‘border‘:1})
        	for i in xrange(nrows):
            		worksheet[h].set_row(i,22)                 #设定第i行单元格属性,高度为22像素,行索引从0开始
            		for j in  xrange(ncols):
                		cell_value = table.cell_value(i,j,) #获取第i行中第j列的值
                		if i == 0:
                    			format = top
					worksheet[h].write(i,j,cell_value,format)      #把获取到的值写入文件对应的行列
                			format.set_align(‘vcenter‘) 
        			else:
					format = text       
					if j == 13 or j == 14 or j == 15 or j == 23:  #特定列设置时间格式
						text.set_num_format(‘yyyy-mm-dd hh:mm:ss‘)  #设置时间格式
                				worksheet[h].write(i,j,cell_value,format)      
                				format.set_align(‘vcenter‘) 
					if j != 13 and j != 14 and j != 15 and j != 23:
						text = workbook.add_format({‘border‘:1,‘align‘:‘center‘,‘bg_color‘:‘white‘,‘font_size‘:12})
						worksheet[h].write(i,j,cell_value,format)      
                				format.set_align(‘vcenter‘) 

if __name__ == ‘__main__‘:
	workbook = xlsxwriter.Workbook(‘result.xlsx‘)  #创建一个excel文件
	MergeExcelToWorksheet(‘test1.xlsx‘,‘test2.xlsx‘)
	workbook.close()

代码及注释有引用其它资料,主要做修改,合并多个excel(以工作表的方式)

以工作表的方式合并excel

标签:python excel worksheet

原文地址:http://liuchw.blog.51cto.com/6858799/1693370

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!