Former-commit-id: fdcfd31cf44ce9f175f64698cddbe4741fe40741
Former-commit-id: b1def7400cb3f37fd1e6aef8c886864282dfd0ac
1.0
wanggang 5 years ago
parent f11bf1f191
commit aaad9c9936

@ -381,7 +381,7 @@ namespace TeacherExt.Controllers
private void ExportInternal(ISheet sheet, QueryTeacherModel model)
{
var style = this.CreateStyle(sheet);
var style = this.CreateStyle(sheet,fontName:"宋体",fontSize:11);
var headers = CreateHader(sheet, model);
var list = this.Query(model)
@ -541,40 +541,18 @@ namespace TeacherExt.Controllers
row.Order(55).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(string.IsNullOrEmpty(teacher.CurrentAddressStreat) ? "无" : teacher.CurrentAddressStreat);
row.Order(56).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(string.IsNullOrEmpty(teacher.Comment) ? "无" : teacher.Comment);
}
for (int i = 0; i < rowIndex; i++)
{
sheet.AutoSizeColumn(i);
var row = sheet.GetRow(i);
if (row != null)
{
for (int j = 0; j < colIndex; j++)
{
var cell = sheet.GetRow(i).GetCell(j);
if (cell != null)
{
var length = cell.ToString().Split('\n').Select(o=> Encoding.UTF8.GetBytes(o).Count()).Max()*256;
if (length > sheet.GetColumnWidthInPixels(j))
{
if (!cell.IsMergedCell)
{
sheet.SetColumnWidth(j, length);
}
}
}
}
}
}
this.SetColWidth(3,sheet);
}
private List<string> CreateHader(ISheet sheet, QueryTeacherModel model)
{
var style = this.CreateStyle(sheet, HSSFColor.PaleBlue.Index, 11,HSSFColor.White.Index,true,"黑体");
var style = this.CreateStyle(sheet,backgroundColor: HSSFColor.PaleBlue.Index,fontSize: 11,fontColor: HSSFColor.White.Index,isBold: true,fontName: "黑体",textWrap:true);
var result = new List<string>();
var headers = typeof(EditTeacherModel).GetProperties().Select(o => o.GetCustomAttribute<ExcelHeaderAttribute>()).Where(o => o != null).ToList();
var colIndex = 0;
foreach (var item in headers)
{
if (!model.Headers.Any()||model.Headers.Contains(item.Header))
if (!model.Headers.Any() || model.Headers.Contains(item.Header))
{
result.Add(item.Header);
int i = 0;
@ -585,7 +563,7 @@ namespace TeacherExt.Controllers
var row = (sheet.GetRow(j) ?? sheet.CreateRow(j));
var cell = (row.GetCell(colIndex) ?? row.CreateCell(colIndex));
cell.SetStyle(style);//.SetCellValue(head.Key);
if(j==i)
if (j == i)
{
cell.SetCellValue(head.Key);
}
@ -610,7 +588,7 @@ namespace TeacherExt.Controllers
if (cell != null && cell.StringCellValue != "")
{
var col = 1;
if(j+1<row.LastCellNum)
if (j + 1 < row.LastCellNum)
{
for (int k = j + 1; k < row.LastCellNum; k++)
{
@ -626,9 +604,9 @@ namespace TeacherExt.Controllers
}
if (col > 1)
{
if(!cell.IsMergedCell)
if (!cell.IsMergedCell)
{
sheet.AddMergedRegion(new CellRangeAddress(i,i,j,j+col-1));
sheet.AddMergedRegion(new CellRangeAddress(i, i, j, j + col - 1));
}
else
{
@ -637,9 +615,9 @@ namespace TeacherExt.Controllers
foreach (var rcell in cells)
{
var region = this.GetRegion(sheet, rcell);
if(region!=null)
if (region != null)
{
RemoveRegion(sheet,region);
RemoveRegion(sheet, region);
}
}
sheet.AddMergedRegion(new CellRangeAddress(i, rowEnd, j, j + col - 1));
@ -655,6 +633,46 @@ namespace TeacherExt.Controllers
return result;
}
private void SetColWidth(int lastHeadNum, ISheet sheet)
{
for (int i = lastHeadNum; i < sheet.LastRowNum; i++)
{
var row = sheet.GetRow(i);
if (row != null)
{
for (int j = 0; j < row.LastCellNum; j++)
{
var cell = sheet.GetRow(i).GetCell(j);
if (cell != null)
{
if (i == lastHeadNum && string.IsNullOrEmpty(cell.StringCellValue))
{
for (int k = 0; k < lastHeadNum+1; k++)
{
if (i - k >= 0)
{
var tempCell = sheet.GetRow(i - k).GetCell(j);
if (tempCell.StringCellValue != "")
{
cell = tempCell;
break;
}
}
}
}
var length = (cell.ToString().Split('\n').Select(o => Encoding.UTF8.GetBytes(o).Count()).Max())* 256;
if (length > sheet.GetColumnWidth(j))
{
sheet.SetColumnWidth(j, length);
}
}
}
}
}
}
private CellRangeAddress GetRegion(ISheet sheet,ICell cell)
{
CellRangeAddress result = null;
@ -688,10 +706,9 @@ namespace TeacherExt.Controllers
}
}
private ICellStyle CreateStyle(ISheet sheet,short? backgroundColor=null,double? fontSize=null,short? fontColor=null,bool isBold=false,string fontName=null)
private ICellStyle CreateStyle(ISheet sheet,short? backgroundColor=null,double? fontSize=null,short? fontColor=null,bool isBold=false,string fontName=null,bool? textWrap=null)
{
var style = sheet.Workbook.CreateCellStyle();
style.WrapText = true;
if(backgroundColor.HasValue)
{
style.FillPattern = FillPattern.SolidForeground;
@ -711,6 +728,10 @@ namespace TeacherExt.Controllers
{
font.Color = fontColor.Value;
}
if(textWrap.HasValue)
{
style.WrapText = textWrap.Value;
}
style.SetFont(font);
style.Alignment = HorizontalAlignment.Center;
style.VerticalAlignment = VerticalAlignment.Center;

Loading…
Cancel
Save