网站链接: HDHCMS 散文随笔
当前位置: 首页 >>ASP.NET >>ASP.NET实战 >>使用NPOI导出Excel 并设置Excel样式基础知识(合并单元格、行高、宽度、字体、边框、位置)

使用NPOI导出Excel 并设置Excel样式基础知识(合并单元格、行高、宽度、字体、边框、位置)

2018/8/30 16:06:25 0人评论 3304次

使用NPOI导出Excel 并设置Excel样式基础知识(合并单元格、行高、宽度、字体、边框、位置)…

1、添加对NPOI的引用

2、创建excel文件对象

HSSFWorkbook wb = new HSSFWorkbook();


3、创建 工作表,也就是Excel中的sheet,给工作表赋一个名称 title

HSSFSheet sheet = (HSSFSheet)wb.CreateSheet(title);


4、设置某一列宽度

sheet.SetColumnWidth(0, 10 * 256);

列号从0开始


5、合并单元格 例: 第1行到第2行 第3列到第4列围成的矩形区域

sheet.AddMergedRegion(new CellRangeAddress(0, 1, 2, 3));

合并单元格后,只需对第一个位置赋值即可


6、在工作表中创建一行

/// <summary>

/// 创建行

/// </summary>

/// <param name="wb"></param>

/// <param name="sheet"></param>

/// <param name="rowNum">创建 一行 的行号 从0开始</param>

/// <param name="rowHeigh">行高</param>

public HSSFRow CreateRow(HSSFSheet sheet, int rowNum, float rowHeight)

{

HSSFRow row = (HSSFRow)sheet.CreateRow(rowNum); //创建行

row.HeightInPoints = rowHeight; //设置列头行高

return row;

}



7、设置单元格样式


/// <summary>

/// 设置样式

/// </summary>

/// <param name="wb"></param>

/// <param name="hAlignment">水平布局方式</param>

/// <param name="vAlignment">垂直布局方式</param>

/// <param name="boldWeight">字体加粗 (short.MaxValue)</param>

/// <param name="fontPonint">字体大小</param>

/// <param name="isBorder">是否需要边框 true是</param>

/// <returns></returns>

public HSSFCellStyle CreateStyle(HSSFWorkbook wb, HorizontalAlignment hAlignment, VerticalAlignment vAlignment, short boldWeight, short fontPonint, bool isBorder)

{

HSSFCellStyle cellStyle = (HSSFCellStyle)wb.CreateCellStyle(); //创建列头样式

cellStyle.Alignment = hAlignment; //水平居中

cellStyle.VerticalAlignment = vAlignment; //垂直居中

if (isBorder)

{

cellStyle.BorderBottom = BorderStyle.THIN;

cellStyle.BorderLeft = BorderStyle.THIN;

cellStyle.BorderRight = BorderStyle.THIN;

cellStyle.BorderTop = BorderStyle.THIN;

}

HSSFFont cellStyleFont = (HSSFFont)wb.CreateFont(); //创建字体

cellStyleFont.Boldweight = boldWeight; //字体加粗

cellStyleFont.FontHeightInPoints = fontPonint; //字体大小

cellStyle.SetFont(cellStyleFont); //将字体绑定到样式

return cellStyle;

}


居中方式可根据实际需要传入参数


8、创建单元格

/// <summary>

/// 创建单元格

/// </summary>

/// <param name="row">需要创建单元格的行</param>

/// <param name="cellStyle">单元格样式</param>

/// <param name="cellNum">创建第几个单元格(从0开始)</param>

/// <param name="cellValue">给单元格赋值</param>

/// <returns></returns>

public HSSFCell CreateCell(HSSFRow row, HSSFCellStyle cellStyle, int cellNum, string cellValue)

{

HSSFCell cell = (HSSFCell)row.CreateCell(cellNum); //创建单元格

cell.CellStyle = cellStyle; //将样式绑定到单元格

if (!string.IsNullOrEmpty(cellValue))

{

cell.SetCellValue(cellValue);

}

return cell;

}


9、以流的方式导出Excel


// 写入到客户端 

System.IO.MemoryStream ms = new System.IO.MemoryStream();

wb.Write(ms);

ms.Seek(0, SeekOrigin.Begin);

return File(ms, "application/vnd.ms-excel", title + ".xls");


CopyRight:2007-2018 语言吧 备案ICP:湘ICP备09009000号-4 http://www.yuyanba.com