【优化】优化excel导出循环字段硬编码问题,防止中途增加字段导致的排序调整问题。

This commit is contained in:
jianweie code
2023-06-05 23:40:45 +08:00
parent d9b682dbe6
commit 9b355622ba

View File

@@ -333,11 +333,13 @@ namespace CoreCms.Net.Web.Admin.Controllers
//sheet1添加第一行的头部标题
var headerRow = mySheet.CreateRow(0);
var headerStyle = ExcelHelper.GetHeaderStyle(book);
var cellNum = 0;
{% for field in ModelFields %}
var cell{{ forloop.index0 }} = headerRow.CreateCell({{ forloop.index0 }});
var cell{{ forloop.index0 }} = headerRow.CreateCell(cellNum);
cell{{ forloop.index0 }}.SetCellValue("{{field.ColumnDescription}}");
cell{{ forloop.index0 }}.CellStyle = headerStyle;
mySheet.SetColumnWidth({{ forloop.index0 }}, 10 * 256);
mySheet.SetColumnWidth(cellNum, 10 * 256);
cellNum++;
{% endfor %}
headerRow.Height = 30 * 20;
var commonCellStyle = ExcelHelper.GetCommonStyle(book);
@@ -346,10 +348,12 @@ namespace CoreCms.Net.Web.Admin.Controllers
for (var i = 0; i < listModel.Count; i++)
{
var rowTemp = mySheet.CreateRow(i + 1);
var cellNumTemp = 0;
{% for field in ModelFields %}
var rowTemp{{ forloop.index0 }} = rowTemp.CreateCell({{ forloop.index0 }});
var rowTemp{{ forloop.index0 }} = rowTemp.CreateCell(cellNumTemp);
rowTemp{{ forloop.index0 }}.SetCellValue(listModel[i].{{field.DbColumnName}}.ToString());
rowTemp{{ forloop.index0 }}.CellStyle = commonCellStyle;
cellNumTemp++;
{% endfor %}
}
// excel
@@ -451,11 +455,13 @@ namespace CoreCms.Net.Web.Admin.Controllers
//sheet1添加第一行的头部标题
var headerRow = mySheet.CreateRow(0);
var headerStyle = ExcelHelper.GetHeaderStyle(book);
var cellNum = 0;
{% for field in ModelFields %}
var cell{{ forloop.index0 }} = headerRow.CreateCell({{ forloop.index0 }});
var cell{{ forloop.index0 }} = headerRow.CreateCell(cellNum);
cell{{ forloop.index0 }}.SetCellValue("{{field.ColumnDescription}}");
cell{{ forloop.index0 }}.CellStyle = headerStyle;
mySheet.SetColumnWidth({{ forloop.index0 }}, 10 * 256);
mySheet.SetColumnWidth(cellNum, 10 * 256);
cellNum++;
{% endfor %}
headerRow.Height = 30 * 20;
@@ -465,12 +471,12 @@ namespace CoreCms.Net.Web.Admin.Controllers
for (var i = 0; i < listModel.Count; i++)
{
var rowTemp = mySheet.CreateRow(i + 1);
var cellNumTemp = 0;
{% for field in ModelFields %}
var rowTemp{{ forloop.index0 }} = rowTemp.CreateCell({{ forloop.index0 }});
rowTemp{{ forloop.index0 }}.SetCellValue(listModel[i].{{field.DbColumnName}}.ToString());
rowTemp{{ forloop.index0 }}.CellStyle = commonCellStyle;
var rowTemp{{ forloop.index0 }} = rowTemp.CreateCell(cellNumTemp);
rowTemp{{ forloop.index0 }}.SetCellValue(listModel[i].{{field.DbColumnName}}.ToString());
rowTemp{{ forloop.index0 }}.CellStyle = commonCellStyle;
cellNumTemp++;
{% endfor %}
}
// excel