Skip to content

Instantly share code, notes, and snippets.

@python-consulting
Created April 14, 2016 17:25
Show Gist options
  • Save python-consulting/1bb4ca86c481756fea2c627d3fbf011e to your computer and use it in GitHub Desktop.
Save python-consulting/1bb4ca86c481756fea2c627d3fbf011e to your computer and use it in GitHub Desktop.
Generer un fichier EXCEL
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
import os
import datetime
import xlsxwriter
class XlsReport(object):
def __init__(self, file_name, base_path=""):
now = datetime.datetime.now()
if not file_name:
self.file_name = 'report_%s.xlsx' % now.strftime(
"%Y-%m-%d_%H-%M")
else:
self.file_name = file_name
self.full_path = os.path.join(base_path, self.file_name)
self.workbook = xlsxwriter.Workbook(self.full_path)
self.title = self.workbook.add_format(
{'bold': True, 'font_size': 16})
self.bold = self.workbook.add_format(
{'bold': True})
self.italic = self.workbook.add_format(
{'italic': True})
self.bold_italic = self.workbook.add_format(
{'bold': True, 'italic': True})
self.current_worksheet = None
self.current_row = 0
def add_worksheet(self, name):
self.current_worksheet = self.workbook.add_worksheet(name)
return self.current_worksheet
def write_header(self, headers, row_index=0, worksheet=None):
if worksheet is None:
worksheet = self.current_worksheet
for col_index, header in enumerate(headers):
worksheet.write(row_index, col_index, header, self.bold)
self.current_row = row_index + 1
def write_row(self, values, row_index=None, worksheet=None):
if row_index is None:
row_index = self.current_row
if worksheet is None:
worksheet = self.current_worksheet
for col_index, value in enumerate(values):
worksheet.write(row_index, col_index, value)
self.current_row = row_index + 1
def close(self):
self.workbook.close()
return self.full_path, self.file_name
def use(xls_file_name=None, base_path=""):
"""
:param results: list of tuples: (score, employee, candidate)
"""
report = XlsReport(
file_name=xls_file_name,
base_path=base_path)
report.add_worksheet('Echanges')
report.write_header(('Prenom', 'Nom', 'Tel',))
for i in range(5):
report.write_row(('pre-%d' % i, 'nom-%d' % i, 'tel-%d' % i))
return report.close()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment