Python項目開發公用方法--excel產生方法

來源:互聯網
上載者:User

標籤:方法   返回   標題   .property   匯出   style   資料匯出   注意   建議   

在實際開發中,我們有時會遇到資料匯出的需求。一般的,匯出的檔案格式為Excel形式。

那麼,excel的產生就適合抽離出一個獨立的公用方法來實現:

 1 def generate_excel(excel_name, title_list, properties, data): 2     """ 3     產生指定的excel檔案,並返迴文件的路徑,檔案儲存在static/files/excels下,並自動追加時間戳記 4     :param excel_name: 檔案名稱, 注意不要帶檔案類型尾碼 5     :param title_list: 標題 6     :param properties: 對應的屬性名稱,方法按照".property_name"的方式擷取值 7     :param data: 資料,建議為query_set 8     :return: 組建檔案的全路徑 9     """10     now = datetime.datetime.now().strftime("%Y%m%d_%H%M%S")11     workbook = xlsxwriter.Workbook("{}/{}{}.xlsx".format(EXCEL_DIR, excel_name, now))12     worksheet = workbook.add_worksheet(excel_name)13     worksheet.set_first_sheet()14     for i in range(len(title_list)):15         worksheet.set_column(‘{}:{}‘.format(chr(65 + i), chr(66 + i)), 20)16 17     excel_format = workbook.add_format()18     excel_format.set_border(1)19     excel_format.set_align(‘center‘)20     excel_format.set_text_wrap()21 22     format_title = workbook.add_format()23     format_title.set_border(1)24     format_title.set_bg_color(‘#cccccc‘)25     format_title.set_align(‘center‘)26     format_title.set_bold()27 28     # 表頭29     worksheet.write_row(‘A1‘, title_list, format_title)30     i = 231     for datum in data:32         location = ‘A‘ + str(i)33         worksheet.write_row(location, [eval("datum.{}".format(key)) for key in properties], excel_format)34         i += 135 36     workbook.close()37     file_path = "{}/{}{}.xlsx".format(EXCEL_DIR, excel_name, now)38     if file_path:39         os.chmod(file_path, 0777)40     return file_path

該方法接收必要的資料產生excel,返回最終的路徑。

Python項目開發公用方法--excel產生方法

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.