如openpyxl、xlrd、xlwt、win32com,openpyxl只支持xlsx的读和写;而对于xls文件,xlrd只支持读,xlwt只支持写。
各个模块对Excel不同格式支持的对比,可参考http://www.gocalf.com/blog/python-read-write-excel.html
1). 直接装最新的python工具,然后配置环境变量,把\python34 和 \python34\Scripts配置到环境变量下
2). 安装openpyxl模块,在dos窗口下运行easy_install openpyxl
3). 下载xlrd、xlwt、win32com模块,前三个模块下载源代码(下载地址:http://pypi.python.org/pypi/xlrd,不同的模块最后路径名字不同),然后解压,到解压的目录下打开dos窗口运行 python setup.py install ;win32com是下载的可执行文件,可直接安装
#-*- coding:utf-8 -* import sys from openpyxl import load_workbook from openpyxl import Workbook from openpyxl.writer.excel import ExcelWriter #------------------------------读取表中的全部内容到字典-------------------------# def readExcel(fileName): wb = load_workbook(fileName) print (wb.get_sheet_names()) #取第一张表 sheetnames = wb.get_sheet_names() ws = wb.get_sheet_by_name(sheetnames[0]) # 建立存储数据的字典 data_dic = {} for rx in range(0,ws.max_row-1): temp_list = [] w1 = ws.cell(row = rx+2,column = 1).value w2 = ws.cell(row = rx+2,column = 2).value w3 = ws.cell(row = rx+2,column = 3).value w4 = ws.cell(row = rx+2,column = 4).value temp_list = [w1,w2,w3,w4] data_dic[rx] = temp_list return data_dic #-----------------------------批量导出生成的模板文件--------------------------# def exportExcel(outputFile,data_dic,line): for i in range(0,len(data_dic)+1): # print (i) if(i % line == 0): #新建一个workbook wb = Workbook() #新建一个excelWriter ew = ExcelWriter(workbook = wb) #第一个sheet是ws ws = wb.worksheets[0] m = int(i/line + 1) ws['A1']=ws['B1']=ws['C1']=ws['D1']=ws['A2']=ws['B2']=ws['C2']=ws['D2']="cc" dest_filename = outputFile + str(m) + '.xlsx' print (dest_filename) for j in range(0,4): if(i == len(data_dic)): break elif(i<line): ws.cell(row = (i+3),column = j+1).value = data_dic[i][j] elif(i>=line): p=i-int(i/line)*line ws.cell(row = (p+3),column = j+1).value = data_dic[i][j] if((i + 1) % line == 0) or (i == len(data_dic)): print ("end") ew.save(filename = dest_filename) #-----------------------程序入口-----------------------------# if __name__ == '__main__': data_dic = {} test_dic = {} test1_dic = {} data_dic = readExcel("test.xlsx") # print (data_dic) #test_dic,test1_dic = removeDuplicate(data_dic) # print (test_dic) # print (test1_dic) exportExcel("test_",test_dic,100) exportExcel("test1_",test1_dic,20)