python批量处理excel

#!/bin/env python

# coding:utf-8

import sys

#import csv

#import re

import os

#import collections as col

from openpyxl import load_workbook

import xlwt

reload(sys)

sys.setdefaultencoding("utf8")

path="/kaka/excel/file/11"

filelist=os.listdir(path)

datas=[]

for i in range(len(filelist)):

    ft = path+"/"+filelist[i]

    ws = load_workbook(ft)

    sheet = ws.get_sheet_by_name("基本信息登记表")

    datas.append([sheet.cell(row=4,column=4).value,sheet.cell(row=5,column=4).value,sheet.cell(row=6,column=4).value,sheet.cell(row=6,column=6).value,sheet.cell(row=7,column=4).value,sheet.cell(row=7,column=6).value,sheet.cell(row=8,column=4).value,sheet.cell(row=8,column=6).value,sheet.cell(row=9,column=4).value,sheet.cell(row=9,column=6).value,sheet.cell(row=10,column=4).value,sheet.cell(row=10,column=6).value,sheet.cell(row=11,column=4).value,sheet.cell(row=11,column=6).value,sheet.cell(row=12,column=4).value,sheet.cell(row=12,column=6).value,sheet.cell(row=13,column=4).value,sheet.cell(row=13,column=6).value,sheet.cell(row=14,column=4).value,sheet.cell(row=14,column=6).value,sheet.cell(row=15,column=4).value,sheet.cell(row=15,column=6).value,sheet.cell(row=16,column=4).value,sheet.cell(row=16,column=6).value,sheet.cell(row=17,column=4).value,sheet.cell(row=17,column=6).value,sheet.cell(row=18,column=4).value,sheet.cell(row=18,column=6).value,sheet.cell(row=19,column=4).value,sheet.cell(row=19,column=6).value,sheet.cell(row=20,column=4).value,str(sheet.cell(row=20,column=6).value)])

def write_excel(datas):

    sheet_name='Sheet1'

    '''

        1:标准宗地编码...

    '''

    row0=['1', '2', '3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30','31','32']

    file_name="work.xls"

    # 创建一个写对象实例

    f = xlwt.Workbook()

    # 创建一个叫sheet_name的表名

    sheet1 = f.add_sheet(sheet_name, cell_overwrite_ok=True)

    # 创建表sheet_name的第一行(即标题)

    for i in range(0, len(row0)):

        sheet1.write(0, i, row0[i])

    # 从第二行开始写数据,datas有多少元素就写多少行

    for row in range(1, len(datas) + 1):

        for col in range(len(row0)):

            print datas[row-1][col]

            # 有了上面row,col提供的行号和列号就可以精确匹配一个单元格了,下面就开始往单元格里写数据了

            # row:行号,col:列号,datas[row-1][col]:数据

            # 注:datas这个列表里一个元素为一行,由于是从第二行开始写的,所以想要取datas的第一个元素需row-1

            # 注:datas这个列表里一个元素(列表)里的元素对应这行每列的值。

            sheet1.write(row, col, datas[row-1][col])

    f.save(file_name)

    print('已生成excel文件!')

if __name__ == '__main__':

    write_excel(datas)


猜你喜欢

转载自blog.51cto.com/12768454/2542935