NPOI简单的给某个单元格字体设置颜色
参考文档有:
https://www.cnblogs.com/gossip/p/4307486.html
https://bbs.csdn.net/topics/391042064?page=1
效果图:
需求分析:导出数据时能够导出一段时间段内的所有产品质量数据,要求每天的数据放到一个Excel文件中,每天所有总成的数据按总成划分,每个总成一个工作簿,以此类推,导出后压缩到文件夹中返回到浏览器供用户查看。因为会存在某日没有生产数据,但依然要导出Excel文件,起初的效果如下图所示,为空白工作簿,没有一个单元格。对于没有数据的Excel导出文档当然还是要有表头和单元格的,如果能加上“无数据”的说明,就更人性化了
/// <summary>
/// 每日所有数据按每个总成一个工作簿导出到excel中
/// </summary>
/// <param name="exportDataList">某日的excel数据内容</param>
/// <param name="fieldInfies">excel表头</param>
/// <returns></returns>
public static HSSFWorkbook createHSSFWorkbook_Day(Dictionary<string, List<T>> exportDataList, List<ExportFieldInfo> fieldInfies)
{
HSSFWorkbook book = new HSSFWorkbook();
try
{
if (exportDataList.Count != )
{
foreach (var items in exportDataList)
{
ISheet sheet = book.CreateSheet(items.Key);
IRow rowTitle = sheet.CreateRow();
IRow rowtemp;
for (int k = ; k < fieldInfies.Count; k++)
{
rowTitle.CreateCell(k).SetCellValue(fieldInfies.ElementAt(k).DisplayName);
}
for (int j = ; j < items.Value.Count; j++)
{
object tempobj = items.Value[j];
//获取类型
Type type = tempobj.GetType();
List<System.Reflection.PropertyInfo> ps = type.GetProperties().ToList();
//将数据写入sheet各个行
rowtemp = sheet.CreateRow(j + );
for (int k = ; k < fieldInfies.Count; k++)
{
//获取属性值
var value = ps.First(t => t.Name == fieldInfies.ElementAt(k).FieldName).GetValue(tempobj, null);
switch (fieldInfies.ElementAt(k).DataType)
{
case DataTypeEnum.Int:
rowtemp.CreateCell(k).SetCellValue(Convert.ToInt32(value));
break;
case DataTypeEnum.Float:
rowtemp.CreateCell(k).SetCellValue(Convert.ToDouble(value));
break;
case DataTypeEnum.Double:
rowtemp.CreateCell(k).SetCellValue(Convert.ToDouble(value));
break;
case DataTypeEnum.String:
rowtemp.CreateCell(k).SetCellValue(Convert.ToString(value));
break;
case DataTypeEnum.DateTime:
rowtemp.CreateCell(k).SetCellValue(Convert.ToDateTime(value).ToString("yyyy-MM-dd HH:mm:ss.SSS"));
break;
case DataTypeEnum.Date:
rowtemp.CreateCell(k).SetCellValue(Convert.ToDateTime(value).ToString("yyyy-MM-dd"));
break;
default:
break;
}
}
tempobj = null;
ps = null;
}
}
}
else
{
//这段代码为“无数据”情况下的特殊处理
//创建一个名称为“Sheet1”的工作簿
ISheet sheet = book.CreateSheet("Sheet1");
//创建2行
IRow rowTitle = sheet.CreateRow();
IRow rowtemp = sheet.CreateRow();
//给工作簿添加表头
for (int k = ; k < fieldInfies.Count; k++)
{
rowTitle.CreateCell(k).SetCellValue(fieldInfies.ElementAt(k).DisplayName);
}
//给第二行第一列的单元格赋值“无数据”
rowtemp.CreateCell().SetCellValue("无数据!");
//创建单元格样式
HSSFCellStyle fCellStyle = (HSSFCellStyle)book.CreateCellStyle();
//创建字体
HSSFFont ffont = (HSSFFont)book.CreateFont();
//给字体设置颜色
ffont.Color = HSSFColor.Red.Index;
//给样式添加字体
fCellStyle.SetFont(ffont);
//给第二行第一列单元格添加样式
rowtemp.GetCell().CellStyle = fCellStyle;
}
}
catch(Exception ex)
{
Console.WriteLine(ex.Message);
}
return book;
}
}
NPOI简单的给某个单元格字体设置颜色的更多相关文章
- 用NPOI创建Excel、合并单元格、设置单元格样式、边框的方法
本篇文章小编为大家介绍,用NPOI创建Excel.合并单元格.设置单元格样式.边框的方法.需要的朋友参考下 今天在做项目中,遇到使用代码生成具有一定样式的Excel,找了很多资料,最后终于解决了,Ex ...
- aspxGridview 根据单元格值得不同,设置单元格字体的颜色(设置和读取值)
protected void ASPxGridView1_HtmlRowCreated(object sender,DevExpress.Web.ASPxGridView.ASPxGridViewTa ...
- AdvStringGrid 单元格字体颜色、背景颜色
procedure TForm5.Button1Click(Sender: TObject); var I: Integer; begin AdvStringGrid1.RowCount := ;// ...
- c#怎样获取excel单元格的RGB颜色
这段时间一直在做office的工作.前2天获取单元格的颜色的问题一直没搞明确. 開始我想用的就是Npoi.主要前一部分的工作都是用Npoi完毕的 row.GetCell(j).CellStyle.Fi ...
- 在Asp.Net MVC中使用NPOI插件实现对Excel的操作(导入,导出,合并单元格,设置样式,输入公式)
前言 NPOI 是 POI 项目的.NET版本,它不使用 Office COM 组件,不需要安装 Microsoft Office,目前支持 Office 2003 和 2007 版本. 1.整个Ex ...
- VBA在Excel中的应用(一):改变符合条件单元格的背景颜色
在使用excel处理数据的时候,为了能更清晰的标示出满足特定条件的单元格,对单元格添加背景色是不错的选择.手工处理的方式简单快捷,但是当遇到大批量数据,就会特别的费时费力,而且不讨好(容易出错).通过 ...
- excel如何设置输入数字后单元格自动填充颜色
在使用excel的过程中,有时需要在输入数字时,突出显示这些单元格,突出显示可以用有填充颜色的单元格来表示.为了实现这样的效果,需要借助excel的条件格式. 工具/原料 电脑 Excel 2010 ...
- 表格单元格td设置宽度无效的解决办法 .
http://zzstudy.offcn.com/archives/11366 在做table页面时,有时对td设置的宽度是无效的,td的宽度始终有内部的内容撑开,可以设置padding,但直接设置w ...
- 帆软报表(finereport)单元格中各颜色标识的含义
帆软报表(finereport)单元格中,可根据单元格角标的颜色判断单元格进行的操作 过滤:单元格左下角黄色三角形 条件属性:单元格左上角红色三角形. 控件:单元格右侧中间的各种矩形. 左父格:单 ...
随机推荐
- bfs初学
BFS: ** 当知道初始和目标状态的,用双向BFS: 无权图最好用BFS 不用重复如队** 实现框架: 抄来的(来源:https://www.luogu.org/blog/stephen2333/s ...
- spring Ioc Aop整合
之前用DWP项目做spring的IOC,xml总是提示有问题,之后改用maven通过. 之后将这一块的内容补充. 仔细考虑一下spring 的IOC是无处不在的,演示Aop也需要依赖spring的IO ...
- BZOJ 3238 后缀数组+单调栈
单调栈跑两遍求出来 ht[i]为最小值的那段区间 //By SiriusRen #include <cstdio> #include <cstring> #include &l ...
- 彻底解决降级安装失败无法彻底卸载应用bug
彻底解决魅族手机无法彻底卸载应用bug使用Flyme系统的同学可能会遇到一个问题:卸载了某些软件(例如通过开发者模式调试安装的应用)后,实际这个应用还残留在系统,当你用低版本或者其他签名的apk覆盖安 ...
- <错误>
1. package com.multak.cookaraclient.adapter; import android.content.Context; import android.support. ...
- java中端口号被占用的解决办法
第一步,命令提示符号,执行命令:netstat -ano 可见,占用1099端口的进程的PID是10460. 第二步,命令提示符号,执行命令:tasklist(通过pid 10460定位) 可见,该占 ...
- 关于使用css伪类实现小图标
效果: .person_use>span{ display:block; width:0; height:0; border-width:10px; border-style:solid; bo ...
- webpack——bable-loader,core,preset,编译es6
//文件夹,在命令行中npm init 之后可以一直回车,答y 出现文件 然后安装bable npm install -save-dev babel-loader babel-core 文件 然后我们 ...
- AIM Tech Round 5 1028cf(A-E)
AIM Tech Round 5 (codeforces上题目编号是1028)(A-E) ---完全被这次比赛打击,自己真的很渣--- 战况 依旧3题选手 被构造题坑得好惨 稍稍涨了rating,希望 ...
- linux yum安装找不到源
1先说问题: 服务器装麒麟系统后安装gis地图(其实就是部署一套地图服务),因为是内网,所以所有需要的包都放在一个iso文件中了,需要用mount命令去加载之,然后配置*.repo文件(源文件配置), ...