python
1 week ago
import pandas as pd
from django.http import HttpResponse
def export_to_excel(request):
server_types = ServerType.objects.all().values()
server_types_df = pd.DataFrame(list(server_types))
servers = Server.objects.select_related('server_type').all()
servers_data = []
for server in servers:
server_dict = server.__dict__.copy()
server_dict['server_type_id'] = server.server_type.name
del server_dict['_state']
servers_data.append(server_dict)
servers_df = pd.DataFrame(servers_data)
vms = Vm.objects.select_related('server').all()
vms_data = []
for vm in vms:
vm_dict = vm.__dict__.copy()
vm_dict['server_id'] = vm.server.name
del vm_dict['_state']
vms_data.append(vm_dict)
vms_df = pd.DataFrame(vms_data)
with pd.ExcelWriter("servers_data.xlsx", engine="xlsxwriter") as writer:
server_types_df.to_excel(writer, sheet_name="ServerType", index=False)
servers_df.to_excel(writer, sheet_name="Servers", index=False)
vms_df.to_excel(writer, sheet_name="VMs", index=False)
response = HttpResponse(
content_type="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
)
response["Content-Disposition"] = 'attachment; filename="servers_data.xlsx"'
with open("servers_data.xlsx", "rb") as f:
response.write(f.read())
return response
0 Comments
Please Login to Comment Here