首页 > 其他分享 >Django导出EXCEL并确保表头左右两列显示

Django导出EXCEL并确保表头左右两列显示

时间:2024-07-17 11:51:13浏览次数:12  
标签:index code EXCEL 表头 Django header order cu row

以下是导出EXCEL确保表头左右两列显示正确值的代码示例:

from openpyxl import Workbook
from openpyxl.styles import Alignment

# 创建一个新的工作簿和工作表
wb = Workbook()
ws = wb.active

# 模拟订单头信息(替换为您的实际数据获取方法)
order_header = {
    'od_no': 'SO001',
    'od_date': '2024-07-16',
    'cu_no': {'cu_name': '客户A'},
    'cu_bil': {'cu_name': '账款归属A'},
    'po_no': 'PO001',
    'pa_no': {'pa_name': '业务员A'},
    'sales_class': {'code': '内外销'},
    'checkout_no': {'code': '结账方式A'},
    'checkout_days': 30,
    'payment': {'code': '付款方式A'},
    'currency': {'code': 'USD'},
    'cny': 1.2,
    'tax': {'code': '税别A'},
    'vat': 0.15,
    'ts': {'code': '交易条件A'},
    'frt': {'code': '货运方式A'},
    'ship_to': {'cu_name': '收货方A'},
    'ship_address': {'cu_address': '收货地址A'},
    'od_amount': 1000.0,
    'od_taxAmount': 150.0,
    'rmk': '备注信息'
}

# 添加左侧表头信息
left_header = [
    ['销售订单单号', order_header['od_no']],
    ['单据时间', order_header['od_date']],
    ['客户', order_header['cu_no']['cu_name']],
    ['账款归属', order_header['cu_bil']['cu_name']],
    ['客户PO', order_header['po_no']],
    ['业务员', order_header['pa_no']['pa_name']],
    ['内外销别', order_header['sales_class']['code']],
    ['结账方式', order_header['checkout_no']['code']],
    ['结账天数', order_header['checkout_days']],
    ['付款方式', order_header['payment']['code']]
]

# 添加右侧表头信息
right_header = [
    ['交易货币', order_header['currency']['code']],
    ['汇率', order_header['cny']],
    ['税别', order_header['tax']['code']],
    ['税率', order_header['vat']],
    ['交易条件', order_header['ts']['code']],
    ['货运方式', order_header['frt']['code']],
    ['收货方', order_header['ship_to']['cu_name']],
    ['收货地址', order_header['ship_address']['cu_address']],
    ['总金额', order_header['od_amount']],
    ['总税额', order_header['od_taxAmount']],
    ['备注', order_header['rmk']]
]

# 添加左侧表头到工作表
for index, item in enumerate(left_header, start=1):
    ws.cell(row=index, column=1, value=item[0])
    ws.cell(row=index, column=2, value=item[1])
    ws.merge_cells(start_row=index, start_column=1, end_row=index, end_column=2)
    ws.cell(row=index, column=1).alignment = Alignment(horizontal='center')

# 添加右侧表头到工作表
for index, item in enumerate(right_header, start=1):
    ws.cell(row=index, column=3, value=item[0])
    ws.cell(row=index, column=4, value=item[1])
    ws.merge_cells(start_row=index, start_column=3, end_row=index, end_column=4)
    ws.cell(row=index, column=3).alignment = Alignment(horizontal='center')

# 保存工作簿到文件
wb.save('sales_order.xlsx')

在这段代码中:

  • order_header 模拟了订单头信息的字典结构,您需要根据实际情况从数据库或其他数据源中获取正确的订单头信息。
  • 使用 enumerate 函数来迭代 left_headerright_header 列表,并将每个值填充到对应的单元格中。
  • 每次迭代时,通过 ws.cell(row, column) 方法指定行和列来设置单元格的值,并使用 merge_cells 方法将左右两列的单元格合并。
  • 最后,保存工作簿到文件。

确保 order_header 中的字段和属性名称与您的实际数据模型一致,并根据需要进行调整。

标签:index,code,EXCEL,表头,Django,header,order,cu,row
From: https://www.cnblogs.com/beichengshiqiao/p/18306996

相关文章

  • java导入excel数据,要求数据精度与文件一致
    最近应客户需求,导入excel表格,且要求数据精度和日期格式与文件一致。之前虽然做过导入导出的功能,但要求没有这么细致,因此在网上查找了大量的文件,找到了表格的cell.getCellStyle().getDataFormatString()这个属性,可以根据属性在程序里转换成自己需要的格式。publicStringgetC......
  • 一种使用Excel直观验证机器视觉引导坐标的方法
    1.首先格式化数据,作为像素坐标,右为机械手坐标2.各自绘制散点图3.将散点图背景色调至半透明:右键图表,填充选项选择无填充 4.将标记点填充色调节至半透明5.缩放图表使二者的标记点尽量重合,就可以看出数据的相对偏移情况 Done! ......
  • Python办公自动化:效率飞跃,自动化批量汇总Excel到Word
    Python办公自动化:效率飞跃,自动化批量汇总Excel到Word原创 丹心向阳 数海丹心 2024年06月23日07:30 山东摘要:每个月底,是许多数据分析师的梦魇,尤其是当他们需要从成百上千的Excel报表中汇总数据到Word时。本文将讲述小李如何使用Python自动化技术,几秒钟完成原本需要通宵达旦......
  • Django项目中使用markdown语法
    要让Django项目支持Markdown语言,你可以使用第三方库markdown来转换Markdown文本到HTML。以下是如何在Django项目中集成Markdown支持的步骤:1.安装Markdown库首先,安装Markdown库:pipinstallmarkdown2.在视图中使用Markdown在你的视图函数中,使用Markdown库将Markdown文本转......
  • 利用wps的com口用python实现excel转pdf
    因为最近每天都要进行表格相关的工作,每天都要整理数据导出pdf,因为导出的表格格式比较复杂,要求也比较严格,所以python导出pdf的库都满足不了需求,比较好用的又需要付费,最后摸索到了可以用应用的com口完成导出因为微软excel在导出多个sheet时比较大的sheet页并不会缩小内容而是扩大......
  • easyExcel使用示例
    引入依赖 <dependency> <groupId>com.alibaba</groupId> <artifactId>easyexcel</artifactId> <version>4.0.1</version> </dependency>动态合并单元格 List<List<String>>head=newArrayList<>(......
  • 【Django】网上蛋糕项目商城-购物车和我的订单功能
    1.购物车功能在首页中的滚动栏的商品,热门商品,新品,以及商品详情中都有加入购物车按钮在models文件中创建购物车表,用于保存当前用户添加的商品信息#购物车表classShoppingCar(models.Model):#用户iduserId=models.IntegerField()#商品idgoodsId=......
  • 几个Excel表格可以合并成一个吗?
    有的时候我们需要整理一些同类型的excel,但是发现内容太分散了就需要合并到一起,相信也有朋友说,直接复制粘贴不就好了,但是如果你需要合并很多分excel呢?你知道怎样一次性把几个excel文档进行合并吗?方法一:在线Excel合并想要合并excel文档,其实在线就可以完成,不需要下载软件,简简单单就......
  • Excel 学习手册 - 精进版(包括各类复杂函数及其嵌套使用)
    作为程序员从未想过要去精进一下Excel办公软件的使用方法,以前用到某功能都是直接百度,最近这两天跟着哔哩哔哩上的戴戴戴师兄把Excel由里到外学了一遍,收获良多。程序员要想掌握这些内容可以说是手拿把掐,对后续Excel的运用也会有非常好的效果,在处理数据时,比起现写一些一次......
  • django实现用户的注册、登录、注销功能
    创建django项目的步骤:Django项目的创建步骤-CSDN博客一、前置工作配置数据库,设置数据库引擎为mysql1、在settings文件中找到DATABASES,配置以下内容DATABASES={"default":{'ENGINE':'django.db.backends.mysql',#数据库引擎'NAME':'dja......