C# NPOI操作Excel

using System.IO;
using NPOI.POIFS.FileSystem;
using NPOI.HSSF.Util;
using NPOI.HSSF.UserModel;
using NPOI.XSSF.UserModel              
//新建Excel文件   
IWorkbook workbook = new HSSFWorkbook();

//新建Sheet表
ISheet sheet
= workbook.CreateSheet("Test Result");

//创建单元格样式和字体样式
IFont font
= workbook.CreateFont();
ICellStyle style
= workbook.CreateCellStyle();

//设置居中
style.Alignment = NPOI.SS.UserModel.HorizontalAlignment.CenterSelection;

//设置内容垂直居中
style.VerticalAlignment
= VerticalAlignment.Justify;
//字体加粗

font.Boldweight = short.MaxValue;
//设置字体大小
font.FontHeightInPoints = 12;

style.SetFont(font);
IFont font1 = workbook.CreateFont(); 
ICellStyle style1
= workbook.CreateCellStyle();
style1.Alignment
= NPOI.SS.UserModel.HorizontalAlignment.CenterSelection;
style1.VerticalAlignment
= VerticalAlignment.Justify;

//修改列宽
sheet.SetColumnWidth(1, 18 * 400);
sheet.SetColumnWidth(2, 18 * 256);     
string[] value1 = { "NO", "UUT SN", "Condition"};
//新建行 IRow row
= sheet.CreateRow(0);
        
for (int a = 0; a < value1.Length; a++) {
//将数组中的值逐一添加到单元格中
  row.CreateCell(a).SetCellValue(Convert.ToString(value1[a]));

 //给每个单元格写入样式
row.GetCell(a).CellStyle
= style; }
for (int i = 0; i < 32; i++) {
  //追加行 IRow row1
= sheet.CreateRow((sheet.LastRowNum + 1)); row1.CreateCell(0).SetCellValue(i + 1); row1.CreateCell(1).SetCellValue("5473567I008D9193541A1000041"); row1.CreateCell(2).SetCellValue("Temperature "); row1.GetCell(0).CellStyle = style1; row1.GetCell(1).CellStyle = style1; row1.GetCell(2).CellStyle = style1; font1.Boldweight = short.MaxValue; style1.SetFont(font1); row1 = sheet.CreateRow((sheet.LastRowNum + 1)); row1.CreateCell(2).SetCellValue("AC input"); row1.GetCell(2).CellStyle = style1; row1 = sheet.CreateRow((sheet.LastRowNum + 1)); row1.CreateCell(2).SetCellValue("DC output"); row1.GetCell(2).CellStyle = style1; row1 = sheet.CreateRow((sheet.LastRowNum + 1)); row1.CreateCell(2).SetCellValue("Current"); row1.GetCell(2).CellStyle = style1;
  //新建path FileStream fs
= new FileStream(@"C:\Users\lenovo\Desktop\Test Result.xls", FileMode.Create, FileAccess.Write);
  //写入 workbook.Write(fs);
 //关闭 fs.Close(); }
//追加内容函数
FileStream fs = new FileStream(@"C:\Users\lenovo\Desktop\Test Result.xls", FileMode.Open, FileAccess.Read, FileShare.ReadWrite);//读取流 POIFSFileSystem ps = new POIFSFileSystem(fs); IWorkbook workbook = new HSSFWorkbook(ps); ISheet sheet = workbook.GetSheetAt(0);//获取工作表 IRow row = sheet.GetRow(0); //得到表头 ColumnStyle column1 = new ColumnStyle(); FileStream fout = new FileStream(@"C:\Users\lenovo\Desktop\Test Result.xls", FileMode.Open, FileAccess.Write, FileShare.ReadWrite);//写入流 ICellStyle style = workbook.CreateCellStyle(); style.Alignment = NPOI.SS.UserModel.HorizontalAlignment.CenterSelection; style.VerticalAlignment = VerticalAlignment.Justify; IFont font = workbook.CreateFont(); ICellStyle style1 = workbook.CreateCellStyle(); style1.Alignment = NPOI.SS.UserModel.HorizontalAlignment.CenterSelection; style1.VerticalAlignment = VerticalAlignment.Justify; font.Boldweight = short.MaxValue; int cellNum = 0; cellNum = row.LastCellNum; row.CreateCell(cellNum).SetCellValue(DateTime.Now.ToString("HH:mm:ss")); row.GetCell(cellNum).CellStyle = style1; for (int i = 0; i < 32; i++) { row = sheet.GetRow(1 + i*4); row.CreateCell(cellNum).SetCellValue("40℃"); row.GetCell(cellNum).CellStyle = style; row = sheet.GetRow(2 + i * 4); row.CreateCell(cellNum).SetCellValue("223.7V"); row.GetCell(cellNum).CellStyle = style; row = sheet.GetRow(3 + i * 4); row.CreateCell(cellNum).SetCellValue("6.07V"); row.GetCell(cellNum).CellStyle = style; row = sheet.GetRow(4 + i * 4); row.CreateCell(cellNum).SetCellValue("3.79A"); row.GetCell(cellNum).CellStyle = style; } fout.Flush(); workbook.Write(fout);//写入文件 workbook = null; fout.Close();

 

C# NPOI操作Excel

上一篇:C#中out和ref的区别


下一篇:C# InputStream获取后乱码处理