获取excel表数据

#!/usr/bin/env python
##-*-coding=utf-8-*-
import xlrd

#打开excel文件
def open_excel(file= 'test.xls'):
    try:
        data = xlrd.open_workbook(file)
        return data
    except Exception,e:
        print str(e)

#根据名称获取Excel表格中的数据   参数:file:Excel文件路径     colnameindex:表头列名所在行的索引  ,by_name:Sheet1名称
# def excel_table_byname(file= 'test.xls', colnameindex=0):
#     data = open_excel(file) #打开excel文件
#     sheets = data.sheet_names()
#     lenth = len(sheets)
#     list = []
#     all = []
#     for i in range(lenth):
#
#         table = data.sheet_by_index(i)
#         cf = {}
#         cf['name'] = table.name
#         # table = data.sheet_by_name(by_name) #根据sheet名字来获取excel中的sheet
#         nrows = table.nrows #行数table.name
#         # colnames = table.row_values(colnameindex) #某一行数据
#         #装读取结果的序列`
#
#         for row_num in range(0, nrows): #遍历每一行的内容
#             list = []
#              row = table.row_values(row_num) #根据行号获取行
#              # if row: #如果行存在
#              #     app = [] #一行的内容
#              #     for i in range(len(colnames)): #一列列地读取行的内容
#              #        app.append(row[i])
#              #     list.append(app) #装载数据
#              #     cf['data'] = list
#             if row:
#                 list.append(row)
#         all.append(cf)
#     return all

#主函数
def main():
    tables = excel_table_byname('test.xls')
    print tables
    # dic = {}
    # for table in tables:
    #      dic['name'] = table['name']
    #      for row in table['data']:
    #          dic['first'] = row[0]
    #          dic['two'] = row[1]
    #          # print dic


def excel_table_byname(file):
    all_sheet = []
    data = open_excel(file)  # 打开excel文件
    sheets = data.sheet_names()
    lenth = len(sheets)
    # 遍历sheet
    for i in range(lenth):
        cf = {}
        row_list = []
        table = data.sheet_by_index(i)
        cf['name'] = table.name
        nrows = table.nrows
        # 遍历某一sheet的所有行
        for row_num in range(nrows):
            row = table.row_values(row_num)
            row_list.append(row)
        cf['data'] = row_list

        all_sheet.append(cf)
    return all_sheet

if __name__=="__main__":
    main()
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章