From baa3af6f8672379e1c65b1eb7b486b44aa3932b8 Mon Sep 17 00:00:00 2001 From: Claude Paroz Date: Fri, 22 May 2015 11:48:03 +0200 Subject: [PATCH] Upgraded openpyxl support (2.2.2) --- requirements.txt | 2 +- stages/views.py | 13 ++++++++----- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/requirements.txt b/requirements.txt index 34b1f99..38deb3b 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,5 @@ Django >= 1.4.2 south -e git+https://github.com/claudep/tabimport.git#egg=tabimport -openpyxl +openpyxl==2.2.2 xlrd diff --git a/stages/views.py b/stages/views.py index 979c364..00bac17 100644 --- a/stages/views.py +++ b/stages/views.py @@ -248,6 +248,7 @@ NON_ATTR_EXPORT_FIELDS = [ def stages_export(request): from datetime import date from openpyxl import Workbook + from openpyxl.styles import Font, Style from openpyxl.writer.excel import save_virtual_workbook period_filter = request.GET.get('period') @@ -283,14 +284,16 @@ def stages_export(request): wb = Workbook() ws = wb.get_active_sheet() ws.title = 'Stages' + bold = Style(font=Font(bold=True)) # Headers - for col_idx, header in enumerate([f[0] for f in export_fields]): - ws.cell(row=0, column=col_idx).value = header - ws.cell(row=0, column=col_idx).style.font.bold = True + for col_idx, header in enumerate([f[0] for f in export_fields], start=1): + cell = ws.cell(row=1, column=col_idx) + cell.value = header + cell.style = bold # Data query_keys = [f[1] for f in export_fields if f[1] is not None] - for row_idx, tr in enumerate(query.values(*query_keys), start=1): - for col_idx, field in enumerate(query_keys): + for row_idx, tr in enumerate(query.values(*query_keys), start=2): + for col_idx, field in enumerate(query_keys, start=1): ws.cell(row=row_idx, column=col_idx).value = tr[field] if tr[contact_test_field] is None: # Use default contact