我已经研究了几天,我仍然无法解决这个问题!希望 StackOverflower 的同事可以在这里帮助我。
所以,现在我有一个自定义的 django 管理命令,它运行一个报告并发送和电子邮件,其中包含作为 xlsx 文件(excel)的报告。现在我想知道是否有一种方法可以在网站上获取该 Excel 报告,以便人们在不想收到电子邮件时可以下载并自行查看。
我已经设置了我的 url 和 html 模板,我现在需要的只是将我的报告的链接(由我的管理命令生成)放入我网站上的模板中,以便任何人都可以下载它!!!请帮忙!我卡住了!
管理命令(精简)
FILENAME = tempfile.mkstemp('.xlsx', 'EDIComplianceReport')
class Command(BaseCommand):
def handle(self, *args, **options):
final_results[carrier_scac] = carrier_results
ts_util.sendMessage(['cmeeks@re-trans.com'],
'EDI Compliance Report', '\n EDI Compliance Report Attached',
self.populateSpreadsheet(final_results))
def populateSpreadsheet(self, results):
workbook = xlsxwriter.Workbook(STATICFILES_DIRS + 'ediportal/ComplianceSummaryReports/' + str(datetime.now().strftime('%Y%m%d%H%M%S'))) #appends a unique time at the end of the file to prevent overwrite
format01 = workbook.add_format({'border': 1, 'bold': True,'align': 'center', 'bg_color': '#DDDDDD'})
format02 = workbook.add_format({'border': 1, 'bold': True, 'bg_color': '#9999FF', 'align': 'center'})
format03 = workbook.add_format({'border': 1, 'bold': True, 'font_color': 'red', 'bg_color': 'white', 'align': 'center'})
format04 = workbook.add_format({'border': 1, 'bold': True, 'bg_color': 'white', 'align': 'center'})
worksheet = workbook.add_worksheet("Summary")
row = 0
col = 0
sorted_carriers = list(CARRIERS.keys())
sorted_carriers.sort()
for i, carrier in enumerate(sorted_carriers):
worksheet.write(i+row, 0, carrier, format01)
worksheet.write(i+row, 1, 'Estimated Overall Compliance', format01)
worksheet.write(i+row+1, 1, results[carrier]['overall_compliance'], format03)
for ind, code in enumerate(CARRIERS[carrier].split(',')):
if code != 'overall_compliance':
worksheet.write(i+row, ind+2, code, format02)
worksheet.write(i+row+1, ind+2, results[carrier][code], format04)
row += 2
workbook.close()
return FILENAME[1]
因此,我想提供名为 EDIComplianceReport.xslx 的文件,并允许其他人将其作为 html 模板上的链接下载。
现在它只是在我的本地主机上运行!!! 我有一个想法,将 excel 工作簿保存到一个静态文件夹并从那里抓取它,但我只是想不出将文档嵌入我的模板中的确切代码......