使用python指令碼,讀取excel表格產生erlang資料

來源:互聯網
上載者:User

標籤:port   開始   excel   lis   pen   file   rom   int   參數調用   

為了將excel資料自動轉換成所需要的erlang資料,聽同事說使用python會很方便簡單,就自學了兩天python,寫了一個比較粗糙的python指令碼,不過能用,有什麼最佳化的地方請指教

代碼如下:

#!/usr/bin/env python# -*- coding: UTF-8 -*-import sysfrom openpyxl.reader.excel import load_workbookimport osimport os.pathdef gen_data(filename):    wb = load_workbook(‘dataxlsx/‘ + filename + ‘.xlsx‘)    # 負載檔案所有分頁    sheetnames = wb.get_sheet_names()   # 擷取所有分頁的名字列表    ws = wb.get_sheet_by_name(sheetnames[0])    # 取第一個分頁的資料#    print ‘ws:‘, ws#    print "Work Sheet Titile:", ws.title    # 分頁名稱#    print "Work Sheet Rows:", ws.max_row    # 分頁行數#    print "Work Sheet Cols:", ws.max_column # 分頁列數    content = []    # 資料內容    id_list = []    # ID列表# ===============================================start concat need data================================================    content.append(‘%% this file is auto maked!\n‘)    content.append(‘-module(‘ + filename + ‘).\n‘)    content.append(‘-compile(export_all).\n‘)    for i in range(4, ws.max_row + 1):      # 從表格第三行開始讀取,由於range函數不包含檔案尾,所以為了讀到最後一行需+1        for j in range(ws.max_column):            if ws[i][j].value == None:                content.append(‘ ,""‘)            elif j == 0:                id_list.append(int(ws[i][j].value))                content.append(‘get(‘ + str(ws[i][j].value).strip() + ‘) ->\n‘)                content.append(‘    {r_‘ + filename + ‘, ‘ + str(ws[i][j].value).strip())            else:                content.append(‘ ,‘ + str(ws[i][j].value).strip())        content.append(‘};\n‘)    content.append(‘get(_) ->\n‘)    content.append(‘    not_match.\n‘)    content.append(‘length() ->\n‘)    content.append(‘    ‘ + str(ws.max_row - 1) + ‘.\n‘)    content.append(‘id_list() ->\n    ‘ + str(id_list) + ‘.‘)# =====================================================end=============================================================    # 寫入資料    f = file(‘./server/‘ + filename + ‘.erl‘,‘w+‘)    f.writelines(content)    print ‘create new file:‘, filename + ‘.erl‘    f.close()   # 關閉通道    returndef start_gen():    # 刪除舊的資料    delnames = os.listdir(‘./server‘)    for delname in delnames:        os.remove(‘./server/‘ + delname)        print ‘delete old file:‘, delname    for _, _, filenames in os.walk(‘./dataxlsx‘):   # 遍曆檔案夾        for filename in filenames:  # 遍曆檔案            find = filename.find(‘.xlsx‘)   # 返回該檔案名稱長度#            print "find is:", find            if filename[0] == ‘~‘ or find == -1:    # 檔案名稱以‘~‘開頭或者找不到檔案名稱, 如以‘.‘開頭的檔案                continue            else:                split_list = filename.split(‘.‘)    # 使用‘.‘分割檔案名稱,獲得[檔案名稱,檔案格式]#                print split_list                gen_data(split_list[0]) # 用檔案名稱作為參數調用gen_datastart_gen()

其中路徑由於沒有作相容,所以路徑必須得正確

使用python指令碼,讀取excel表格產生erlang資料

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.