NPOI控制excel绘制单元格颜色并导出
来源:互联网 发布:淘宝上架教程 编辑:程序博客网 时间:2024/05/29 12:52
npoi操作excel文件,绘制背景颜色时,数据过大时,不知道什么原因,会有部分颜色绘制不上,应该是循环的问题,调整成现在的模式,先定义好颜色,然后一个一个选择
最后一列不显示,所以i-1,j-1
public static void WriteExcel(DataTable dt, string filePath){
if (!string.IsNullOrEmpty(filePath) && null != dt && dt.Rows.Count > 0)
{
NPOI.HSSF.UserModel.HSSFWorkbook book = new NPOI.HSSF.UserModel.HSSFWorkbook();
NPOI.SS.UserModel.ISheet sheet = book.CreateSheet(dt.TableName);
NPOI.SS.UserModel.IRow row = sheet.CreateRow(0);
for (int i = 0; i < dt.Columns.Count - 1; i++)
{
row.CreateCell(i).SetCellValue(dt.Columns[i].ColumnName);
}
ICellStyle backcolorred = book.CreateCellStyle();
backcolorred.FillForegroundColor = 10; //退票金额超过刷卡金额,红色
backcolorred.FillPattern = FillPattern.SolidForeground;
ICellStyle backcolorgreen = book.CreateCellStyle();
backcolorgreen.FillForegroundColor = 17; ////已经退过款,绿色,具体数字代表的颜色看NPOI颜色对照表
backcolorgreen.FillPattern = FillPattern.SolidForeground;
ICellStyle backcolororange = book.CreateCellStyle();
backcolororange.FillForegroundColor = 53; //退款金额大于实际刷卡金额,
backcolororange.FillPattern = FillPattern.SolidForeground;
for (int i = 0; i < dt.Rows.Count; i++)
{
NPOI.SS.UserModel.IRow row2 = sheet.CreateRow(i + 1);
for (int j = 0; j < dt.Columns.Count - 1; j++)
{
ICell cellN9 = row2.CreateCell(j);
if (dt.Columns[j].DataType.ToString() == "System.Int32")
{
cellN9.SetCellValue(Convert.ToInt32(dt.Rows[i][j]));
}
else
{
cellN9.SetCellValue(Convert.ToString(dt.Rows[i][j]));
}
switch (Convert.ToString(dt.Rows[i][dt.Columns.Count - 1]))
{
case "0":
{
break;
}
case "1":
{
cellN9.CellStyle = backcolorgreen;
break;
}
case "2":
{
cellN9.CellStyle = backcolorred;
break;
}
case "3":
{
cellN9.CellStyle = backcolororange;
break;
}
}
}
}
// 写入到客户端
using (System.IO.MemoryStream ms = new System.IO.MemoryStream())
{
book.Write(ms);
using (FileStream fs = new FileStream(filePath, FileMode.Create, FileAccess.Write))
{
byte[] data = ms.ToArray();
fs.Write(data, 0, data.Length);
fs.Flush();
}
book = null;
}
}
}
阅读全文
0 0
- NPOI控制excel绘制单元格颜色并导出
- NPOI导出EXcel合并单元格问题
- NPOI导出Excel并下载到客户端
- 使用NPOI设置Excel表的单元格背景颜色
- NPOI 导出 Excel 合并单元格、设置样式、输入公式
- C#使用NPOI读取excel模板,并导出excel
- NPOI导出完美合并单元格
- NPOI设置Excel单元格样式
- NPOI导出Excel
- 利用npoi导出excel
- NPOI导出Excel
- NPOI Excel导入导出
- 使用NPOI导出EXCEL
- NPOI导出excel
- 利用npoi导出excel
- NPOI导出Excel功能
- npoi导出到EXCEL
- NPOI导出Excel
- Android6.0与Android4.4关于3重DES加密的简介
- sqlserver的分页
- 程序员真的适合跑步健身吗?
- SQL加强(二)数据类型
- [bzoj1096][ZJOI2007]仓库建设
- NPOI控制excel绘制单元格颜色并导出
- 解决Oracle 11g在用EXP导出时,空表不能导出
- swoole 与 node 的了解
- Android异常 Eclipse编译应用时出现 com.android.dx.cf.iface.parseexception
- 51nod 一级算法 1091 贪心
- [NOIP提高组2000]进制转换
- IDEA使用之快捷键
- MySQL数据库的备份与恢复
- Ddos高防