以工作表的方式合并excel

#!/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(以工作表的方式)

你可能感兴趣的:(python,Excel,worksheet)