public class ExcelNPOIUnit
{
public static void SetCell(IWorkbook workbook, ISheet sheet,
IRow row, int createCellIndex, object cellContent, CellType cellType, HorizontalAlignment alignment)
{
IDataFormat celldataformat = workbook.CreateDataFormat();
IFont font = workbook.CreateFont();
font.FontName = "Calibri"; ICell cell = row.FirstOrDefault(n => n.ColumnIndex == createCellIndex);
if (cell == null)
cell = row.CreateCell(createCellIndex); cell.CellStyle.SetFont(font);
cell.CellStyle.BorderLeft = BorderStyle.Thin;
cell.CellStyle.BorderRight = BorderStyle.Thin;
cell.CellStyle.BorderTop = BorderStyle.Thin;
cell.CellStyle.BorderBottom = BorderStyle.Thin; //在这里设置会影响全部单元格
//cell.CellStyle.Alignment = alignment; double tmp = -;
if (cellType == CellType.Numeric && double.TryParse(cellContent.ToString(), out tmp))
{
//必须在这里这样设置,才能对当前单元格有效
ICellStyle cellstyle = workbook.CreateCellStyle();
cellstyle.CloneStyleFrom(cell.CellStyle);
cellstyle.DataFormat = HSSFDataFormat.GetBuiltinFormat("#,##0");
cellstyle.Alignment = alignment;
cell.CellStyle = cellstyle; cell.SetCellValue(tmp);
}
else
{
//必须在这里这样设置,才能对当前单元格有效
ICellStyle cellstyle = workbook.CreateCellStyle();
cellstyle.CloneStyleFrom(cell.CellStyle);
cellstyle.Alignment = alignment;
cell.CellStyle = cellstyle;
cell.SetCellValue(cellContent.ToString());
}
} public static void SaveSheet(string fullname, ISheet sheet)
{
using (FileStream writefile = new FileStream(fullname, FileMode.Create, FileAccess.Write))
{
sheet.Workbook.Write(writefile);
}
}
public static IWorkbook GetWorkbook(string fullname)
{
IWorkbook workbook = null; if (fullname.ToLower().EndsWith(".xls"))
{
using (FileStream fs = new FileStream(fullname, FileMode.Open, FileAccess.Read))
{
workbook = new HSSFWorkbook(fs);
}
}
else
{
using (FileStream fs = new FileStream(fullname, FileMode.Open, FileAccess.Read))
{
workbook = new XSSFWorkbook(fs);
}
} return workbook;
} }

var wk = ExcelNPOIUnit.GetWorkbook(logname);

var sheet = wk.GetSheet("Sheet1");

int rowindex = 2;
int cellindex = 0;
foreach (var item in list)
{
IRow row = sheet.CreateRow(rowindex);

ExcelNPOIUnit.SetCell(wk, sheet, row, cellindex++, item.CreateDate, CellType.String, HorizontalAlignment.Center);
ExcelNPOIUnit.SetCell(wk, sheet, row, cellindex++, item.TotalFilesReceived, CellType.Numeric, HorizontalAlignment.Right);
ExcelNPOIUnit.SetCell(wk, sheet, row, cellindex++, item.TotalPagesReceived, CellType.Numeric, HorizontalAlignment.Right);
ExcelNPOIUnit.SetCell(wk, sheet, row, cellindex++, item.ShippedFiles, CellType.Numeric, HorizontalAlignment.Right);
ExcelNPOIUnit.SetCell(wk, sheet, row, cellindex++, item.ShippedPages, CellType.Numeric, HorizontalAlignment.Right);
ExcelNPOIUnit.SetCell(wk, sheet, row, cellindex++, item.PendingFiles, CellType.Numeric, HorizontalAlignment.Right);
ExcelNPOIUnit.SetCell(wk, sheet, row, cellindex++, item.PendingPages, CellType.Numeric, HorizontalAlignment.Right);
ExcelNPOIUnit.SetCell(wk, sheet, row, cellindex++, item.NofFiles_Priority, CellType.Numeric, HorizontalAlignment.Right);
ExcelNPOIUnit.SetCell(wk, sheet, row, cellindex++, item.NoofPgs_Priority, CellType.Numeric, HorizontalAlignment.Right);
ExcelNPOIUnit.SetCell(wk, sheet, row, cellindex++, item.NoofFiles_NoPriority, CellType.Numeric, HorizontalAlignment.Right);
ExcelNPOIUnit.SetCell(wk, sheet, row, cellindex++, item.NoofPgs_NoPriority, CellType.Numeric, HorizontalAlignment.Right);
ExcelNPOIUnit.SetCell(wk, sheet, row, cellindex++, item.NoofFiles_Today, CellType.Numeric, HorizontalAlignment.Right);
ExcelNPOIUnit.SetCell(wk, sheet, row, cellindex++, item.NoofPgs_Today, CellType.Numeric, HorizontalAlignment.Right);
ExcelNPOIUnit.SetCell(wk, sheet, row, cellindex++, item.Remarks, CellType.Numeric, HorizontalAlignment.Left);
rowindex++;
cellindex = 0;
}

ExcelNPOIUnit.SaveSheet(logname, sheet);

NPOI CellStyle 设置的更多相关文章

  1. NPOI 格式设置2—时间,千分位,繁体,小数位

    在Excel中我们经常要设置格式,比如说日期格式(yyyymmdd).小数点格式(1.20).货币格式($2000).百分比格式(99.99%)等等,这些东西在过去我们恐怕只能在服务器端生成好,不但增 ...

  2. NPOI格式设置1

    using NPOI.SS.UserModel; using NPOI.HSSF.UserModel; //创建Execl IWorkbook hssfworkbook =new HSSFWorkbo ...

  3. NPOI格式设置

    using NPOI.SS.UserModel; using NPOI.HSSF.UserModel; //创建Execl IWorkbook hssfworkbook =new HSSFWorkbo ...

  4. NPOI打印设置

    打印设置主要包括方向设置.缩放.纸张设置.页边距等.NPOI 1.2支持大部分打印属性,能够让你轻松满足客户的打印需要. 方向设置首先是方向设置,Excel支持两种页面方向,即纵向和横向. 在NPOI ...

  5. NPOI Excel设置样式

    在表格导出时,会碰到样式修改的问题,作如下简单归纳: //创建行样式ICellStyle style = workbook.CreateCellStyle();//前景色                ...

  6. NPOI 自定义单元格背景颜色-Excel

    NPOI针对office2003使用HSSFWorkbook,对于offce2007及以上使用XSSFWorkbook:今天我以HSSFWorkbook自定义颜色为例说明,Office2007的未研究 ...

  7. NPOI 教程 - 2.1单元格合并

    来源:http://liyingchun343333.blog.163.com/blog/static/3579731620091018212990/ 合并单元格在制作表格时很有用,比如说表格的标题就 ...

  8. NPOI使用手册[转]

    NPOI使用手册 目录 1.认识NPOI 2. 使用NPOI生成xls文件 2.1 创建基本内容 2.1.1创建Workbook和Sheet 2.1.2创建DocumentSummaryInforma ...

  9. [转]NPOI 单元格级别应用

    原文地址:http://hi.baidu.com/linrao/item/fadf96dce8770753d63aaef2 HSSFWorkbook hssfworkbook = new HSSFWo ...

随机推荐

  1. Netty之Reactor模式

    无论是C++还是Java编写的网络框架,大多数都是基于Reactor模式进行设计和开发,Reactor模式基于事件驱动,特别适合处理海量的I/O事件. 1. 单线程模型 Reactor单线程模型,指的 ...

  2. Java中的Set,List,Map的区别

    1. 对JAVA的集合的理解是想对于数组 数组是大小固定的,并且同一个数组只能存放类型一样的数据(基本类型/引用类型) JAVA集合可以存储和操作数目不固定的一组数据. 所有的JAVA集合都位于 ja ...

  3. 白盒测试实践-任务进度-Day05

    所使用静态代码检查工具 阿里巴巴Java开发代码检测IDE插件 小组成员 华同学.郭同学.覃同学.刘同学.穆同学.沈同学 任务进度 任务已经进入收官阶段,为了对大家各自任务完成情况进行确认,保证任务能 ...

  4. PreparedStatement的setDate方法如何设置日期

    pstmt.setString(12, "to_char(sysdate,'YYYY-MM-DD HH24:MI:SS')");这样写不对,应该如何写 该方法用于将指定的参数设置为 ...

  5. JavaScript获取主流手机系统和型号

    <script src="http://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script> < ...

  6. [GO]从键盘获取回复的客户端

    package main import ( "net" "fmt" "os" ) func main() { //连接服务器 conn, e ...

  7. YII2 rule exist unique

    ['mobile', 'exist', 'targetClass' => 'xmobile\modules\v1\models\BuyerList', 'message' => '当前用户 ...

  8. TextView 垂直居中

     需要区分的是这里的top,bottom,ascent,descent,baseline是指字内容的属性,通过getPaint().getFontMetricsInt()来获取得到.和字体内容的外部容 ...

  9. (转)构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(5)-EF增删改查by糟糕的代码

    原文地址:http://www.cnblogs.com/ymnets/archive/2013/11/16/3426454.html 上一讲我们创建了一系列的解决方案,我们通过一个例子来看看层与层之间 ...

  10. 机器学习及其matlab实现—从基础到实践

    第1周 MATLAB入门基础 第2周 MATLAB进阶与提高 第3周 BP神经网络 第4周 RBF.GRNN和PNN神经网络 第5周 竞争神经网络与SOM神经网络 第6周 支持向量机(Support ...