Jam Tangan Pria Original CHRONOGRAPHNama produk : T5 H 4030G, Diameter : 47mm, IMPORT HIGH QUALITY, FITUR : CHRONOGRAPH STOPWATCH DATE. Buy |
Pada tutorial sebelumnya kita telah membahas bagaimana cara membuat export data ke dalam format .CSV pada Django Framework. Selanjutnya kita akan membahas bagaimana cara membuat export data kedalam format .XLSX
Secara default django framework tidak menyediakan library untuk membuat format data kedalam format .XLSX, oleh karena ini kita membutuhkan library tambahan untuk bisa mengolah ataupun menyajikan data dalam format XLSX.
Salah satu library yang cukup di rekomendasikan pada bahasa python untuk mengubah data kedalam format XLSX adalah OPENPYXL, library ini membantu kamu mengolah ataupun menyajikan data dalam format XLSX.
Setelah berada dalam mode environment, install OPENPYXL denga pip
pip install openpyxl
from openpyxl import Workbook
CREATE TABLE product (
id serial NOT NULL,
product_name varchar(255) NOT NULL,
price int4 NULL,
limit_user int4 NULL,
);
from openpyxl import Workbook
from datetime import datetime
from apps.models import Product
def export_to_xlsx(request):
response = HttpResponse(
content_type='application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
)
response['Content-Disposition'] = 'attachment; filename={date}-product.xlsx'.format(
date=datetime.now().strftime('%Y-%m-%d'),
)
workbook = Workbook()
# Get active worksheet/tab
worksheet = workbook.active
worksheet.title = 'Product'# Define the titles for columns
columns = [
'Name','Price','Limit User'
]
row_num = 1
# Assign the titles for each cell of the header
for col_num, column_title in enumerate(columns, 1):
cell = worksheet.cell(row=row_num, column=col_num)
cell.value = column_titleproducts = Product.objects.all()
for prod in products:
row = [prod.name,prod.price,prod.limit_user]for col_num, cell_value in enumerate(row, 1):
cell = worksheet.cell(row=row_num, column=col_num)
cell.value = cell_valueworkbook.save(response)
return response
Dari kode diatas melalui variable response, kita membuat header dengan