本文主要是介绍[C#][NPOI系列]搬移数据列和COPY SHEET数据,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
通常用NPOI将数据写成EXCEL并导出在前面一些案例中,并不会有太大问题,但是,最近又遇到需要将Excel中某一块
数据或是某一个Row之后的数据中间插入一些空白或是其他值,跟需要把写好数据的Sheet再复制一份出来,基本上这些
透过NPOI都是可以快速达成
搬移数据=插入数据?
这两个我认为其实是相同意思,主要就是在Excel中插入一些列去放入其他数据或是将数据区块分开,例如下图,原本是
连续的数据区块,插入两行空白去区隔数据,当然,除了插入空白数据列外,也是可以在这数据列中去填入一些信息
[] []
原程序代码如下:
DataTable dt = new DataTable();
Data.clsData oo = new Data.clsData();
dt = oo.Getdate1();
HSSFWorkbook hFF = new HSSFWorkbook();
ISheet Sheet = hFF.CreateSheet("Test1");
IRow row1 = Sheet.CreateRow(0);
for (int j = 0; j < dt.Columns.Count; j++)
{
row1.CreateCell(j).SetCellValue("A" + j.ToString());
}
for (int i = 0; i < dt.Rows.Count; i++)
{
IRow row = Sheet.CreateRow(i + 1);
for (int j = 0; j < dt.Columns.Count; j++)
{
row.CreateCell(j).SetCellValue(dt.Rows[i][j].ToString());
}
}
假设先把数据都填完,然后只要透过ShiftRows方法去搬移区块,把某一段数据区块搬移后,其实就等于插入了多少列了,
其使用方法参数如下
[]
主要就是告诉ShiftRow方法,你要搬移区块的起始Row的编号,跟结束Row的编号,这样就可以圈选出一个要被搬移的区块
范围。然后,再给定要Shift的Row数,举例来讲,我需要从第六列数据到最后一笔数据的这区块,全部往下Shift两个Row,其
意思就是插入两个空白Row。
Sheet.ShiftRows(6, dt.Rows.Count + 1, 2);
这样就可以达到上面插入两个Row效果。若是,中间连续数据集插入其他信息也可以这样做
Sheet.ShiftRows(6, dt.Rows.Count + 1, 2);
row = Sheet.CreateRow(6);
row.CreateCell(0).SetCellValue("我是空白列");
这样就把信息放到这里面了
[]
Copy Sheet
透过NPOI也可以将原本Sheet数据复制出一个Sheet来。通常这样做法在于统计数据或是相关数据变换计算用,只需要将
原本数据变更部分信息看整个统计信息有无太大变异。若是还要重新长一次Sheet也太耗工,不如就将原本Sheet信息复制
一份后,再针对部分需要修正资料进行修正就可以
[]
1.首先,先取得你要Copy的Sheet资料
HSSFWorkbook hFF = new HSSFWorkbook();
HSSFSheet CPS = hFF.GetSheetAt(0) as HSSFSheet;
2.透过CopyTo方法,将取到的Sheet信息进行Copy,在复制部分,可以选择要复制的方式,例如只要把值复制就好,还是连
每个CELL内公式都要复制或是格式是否要复制。
[]
CPS.CopyTo(hFF, "Copy Sheet", true, true);
一行简单程序代码就可以达到Sheet复制功能
这篇关于[C#][NPOI系列]搬移数据列和COPY SHEET数据的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!