首页 > 技术文章 > python 页面表格 在word文档中显示

zwl1207 2019-05-28 18:43 原文

 

def post(self, request):
base_url = settings.MEDIA_ROOT + '\\doc\\template\\'
asset_url = base_url + 'kong3.docx'
# ---------------------------cp_name--cp_ids----------------------------------rp_name---rp_ids--------------------------------
cols_point = Point.objects.filter(item_id=8)
rows_point = Point.objects.filter(item_id=3)
cp_name = []
cp_ids = []
for cpoint in cols_point:
cp_name.append(cpoint.point_name)
cp_ids.append(cpoint.id)
rp_name = []
rp_ids = []
for rpoint in rows_point:
rp_name.append(rpoint.point_name)
rp_ids.append(rpoint.id)
print("0000000000cp_ids000000000:%s" %cp_ids) # [13, 14, 15, 16, 17]
print("0000000000rp_ids000000000:%s" %rp_ids) # [9, 10, 11, 12]

# -------------------------col_list--------------------------row_list-----------------------------------------------
col_rows = request.POST.get('col_rows') # 13-9,17-9,14-10,15-11,16-12
col_rows_list = col_rows.split(",") #['13-9', '17-9', '14-10', '14-11', '15-11', '16-11', '17-12']
col_list = [] # [13, 14, 16, 15, 17]
row_list = [] # [9, 10, 10, 11, 12]
data_list = [] #[[13, 9], [14, 10], [16, 10], [15, 11]]
for col_rows in col_rows_list:
col_row = col_rows.split("-")
col = int(col_row[0]) # 13
row = int(col_row[1]) # 9
col_list.append(col)
row_list.append(row)
col_row1 = [col,row]
data_list.append(col_row1)

col_names = [] # ['教学目标1', '教学目标2', '教学目标3', '教学目标4', '教学目标5']
for col in col_list:
col_name = Point.objects.get(id=col)
col_names.append(col_name.point_name)
print("0000000000col_name000000000:%s" %col_names)
#------------------------------------------------------------------------------------------------
# print("0000000000tttttttttttt000000000")
data2 = []
data1 = []
data = []
print("0000000000rp_ids000000000:%s" %cp_ids)
print("0000000000data_list000000000:%s" %data_list)

for rid in rp_ids:
r_point = Point.objects.get(id=rid)
r_pname = r_point.point_name
data1.append(r_pname)
str_list2 = []
for cid in cp_ids:
bool =True
for dac in data_list:
ac = dac[0]
ar = dac[1]
if ac == cid and ar == rid:
str1 = "+"
str_list2.append(str1)
bool = False
if bool:
str2 = ""
str_list2.append(str2)
data2.append(str_list2)
data3 = {'label': r_pname, 'cols': str_list2}
data.append(data3)

print("0000000000data1000000000:%s" %data1)
print("0000000000data2000000000:%s" %data2)
print("0000000000data3000000000:%s" %data)


tpl = DocxTemplate(asset_url)
context = {
'col_labels': cp_name,
'tbl_contents': data
# 'col_labels': ['fruit', 'vegetable', 'stone', 'thing'], # cp_name
# 'tbl_contents': [
# {'label': 'yellow', 'cols': ['banana', 'capsicum', 'pyrite', 'taxi']},
# {'label': 'red', 'cols': ['apple', 'tomato', 'cinnabar', 'doubledecker']},
# {'label': 'green', 'cols': ['guava', 'cucumber', 'aventurine', 'card']},
# ]
}
tpl.render(context)
tpl.save(base_url + 'kong_test1.docx')
return JsonResponse({'res': 5, 'message': '创建成功!'})

推荐阅读