NPOI Excel 셋업 셀 높이 자동 적응 내보내기
5756 단어 .Net
public class ExcelAHelper
{
///
/// List Excel
///
///
///
///
///
///
public static byte[] Export(IList list, IList dicts, string SheetName = "Sheet1")
{
IWorkbook book = new XSSFWorkbook();
//
ICellStyle styleCell = book.CreateCellStyle();
styleCell.Alignment = HorizontalAlignment.Center;
styleCell.WrapText = true;
styleCell.BorderTop = BorderStyle.Thin;
styleCell.BorderRight = BorderStyle.Thin;
styleCell.BorderLeft = BorderStyle.Thin;
styleCell.BorderBottom = BorderStyle.Thin;
styleCell.Alignment = HorizontalAlignment.Center;
IFont font = book.CreateFont();
font.FontHeightInPoints = 10;
font.FontName = " ";
styleCell.SetFont(font);
ISheet sheet = book.CreateSheet(SheetName);
IRow row = sheet.CreateRow(0);
row.RowStyle = styleCell;
for (int i = 0; i < dicts.Count; i++)
{
row.CreateCell(i).SetCellValue(dicts[i].ColumnName);
sheet.SetColumnWidth(i, dicts[i].Width * 256);
sheet.SetDefaultColumnStyle(i, styleCell);
}
for (int i = 0; i < list.Count; i++)
{
var entity = list[i];
IRow mRow = sheet.CreateRow(i + 1);
for (int j = 0; j < dicts.Count; j++)
{
var property = typeof(T).GetProperty(dicts[j].PropertyName);
if (property != null)
{
mRow.CreateCell(j).SetCellValue(property.GetValue(entity) == null ? "" : property.GetValue(entity).ToString());
mRow.RowStyle = styleCell;
}
}
}
//
MemoryStream ms = new MemoryStream();
book.Write(ms);
ms.Flush();
return ms.ToArray();
}
public static byte[] ExportByGroup(IEnumerable> datas, IList columns)
{
IWorkbook book = new XSSFWorkbook();
//
ICellStyle styleCell = book.CreateCellStyle();
styleCell.Alignment = HorizontalAlignment.Center;
styleCell.WrapText = true;
styleCell.BorderTop = BorderStyle.Thin;
styleCell.BorderRight = BorderStyle.Thin;
styleCell.BorderLeft = BorderStyle.Thin;
styleCell.BorderBottom = BorderStyle.Thin;
styleCell.VerticalAlignment = VerticalAlignment.Distributed;
styleCell.Alignment = HorizontalAlignment.Center;
IFont font = book.CreateFont();
font.FontHeightInPoints = 10;
font.FontName = " ";
styleCell.SetFont(font);
foreach (var item in datas)
{
var sheet = book.CreateSheet(item.Key);
IRow row = sheet.CreateRow(0);
row.RowStyle = styleCell;
for (int i = 0; i < columns.Count; i++)
{
row.CreateCell(i).SetCellValue(columns[i].ColumnName);
sheet.SetColumnWidth(i, columns[i].Width * 256);
sheet.VerticallyCenter = true;
sheet.SetDefaultColumnStyle(i, styleCell);
}
for (int i = 0; i < item.Count(); i++)
{
var entity = item.ToList()[i];
IRow mRow = sheet.CreateRow(i + 1);
mRow.RowStyle=styleCell;
for (int j = 0; j < columns.Count; j++)
{
var property = typeof(T).GetProperty(columns[j].PropertyName);
if (property != null)
{
ICell cell = mRow.CreateCell(j);
cell.SetCellValue(property.GetValue(entity) == null ? "" : HttpUtility.UrlDecode(property.GetValue(entity).ToString()).Replace("&", "&").Replace("<", "").Replace(""", "\"").Replace("'", "'"));
cell.CellStyle = styleCell;
}
}
}
}
MemoryStream ms = new MemoryStream();
book.Write(ms);
ms.Flush();
return ms.ToArray();
}
public static void Bytes2File(byte[] buff, string savepath)
{
if (File.Exists(savepath))
{
File.Delete(savepath);
}
FileStream fs = new FileStream(savepath, FileMode.CreateNew);
BinaryWriter bw = new BinaryWriter(fs);
bw.Write(buff, 0, buff.Length);
bw.Close();
fs.Close();
}
}
public class ExcelEntity
{
///
///
///
public string ColumnName { get; set; }
///
///
///
public string PropertyName { get; set; }
///
///
///
public int Width { get; set; }
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
NPOI Excel 여러 개를 하나의 Excel로 결합구현 코드 Nuget에서 NPOI 검색 및 설치 NPOI를 사용하여 참조를 추가합니다.HSSF.UserModel;...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.