您的位置:首页 > 编程语言 > Python开发

以工作表的方式合并excel

2015-09-10 11:06 567 查看
#!/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 workshe