一、NPOI組件導入
右鍵項目菜單,“管理NuGet程序包”
直接搜索“NPOI”即會出現列表,下載第一個進行安裝即可
安裝完成后項目引用會出現以下幾項
二、基礎使用
添加引用
using NPOI.HPSF; using NPOI.HSSF.UserModel; using NPOI.SS.UserModel;
Excel操作開始
HSSFWorkbook hssfworkbook = new HSSFWorkbook();//先創建Workbook ISheet sheet= hssfworkbook.CreateSheet("Sheet1");//創建sheet頁 IRow row1=sheet.CreateRow(0);//創建行 row1.CreateCell(0).SetCellValue("test");//創建單元格並設置值
文件導出
FileStream file = new FileStream(sFilePath, FileMode.Create); hssfworkbook.Write(file); file.Close();
測試代碼(以MVC實例):
/// <summary> /// 讀取xls內容 /// </summary> /// <returns></returns> public ActionResult Index() { string sFilePath = @"C:\text.xls"; //根據路徑獲取讀取xls文件 HSSFWorkbook wb = new HSSFWorkbook(new FileStream(sFilePath, FileMode.Open)); //獲取sheet對象 ISheet sheet1 = wb.GetSheet("Sheet1"); //獲取行 IRow row = sheet1.GetRow(1); //獲取單元格 ICell cell = row.GetCell(0); ICell cell1 = row.GetCell(1); var cellValue = cell.ToString(); return View(); } /// <summary> /// NPIO導出excel /// </summary> /// <returns></returns> public FileResult DownFile() { string sFilePath = @"C:\text.xls"; HSSFWorkbook hssfworkbook = new HSSFWorkbook();//先創建Workbook ISheet sheet = hssfworkbook.CreateSheet("Sheet1");//創建sheet頁 IRow row1 = sheet.CreateRow(0);//創建行 row1.CreateCell(0).SetCellValue("test");//創建單元格並設置值 //設置列寬(字符寬度) sheet.SetColumnWidth(0, 10 * 256);//第一列,10個字符寬度 //設置行高 row1.HeightInPoints = 40;//高度(像素) //設置網格的默認行高和列框 sheet.DefaultColumnWidth = 100 * 256; sheet.DefaultRowHeightInPoints = 30; //設置單元格樣式 //樣式創建 ICellStyle style = hssfworkbook.CreateCellStyle(); style.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Center;//文字橫向居中 style.VerticalAlignment = VerticalAlignment.Center;//文字縱向居中 IFont font = hssfworkbook.CreateFont();//字體 font.FontHeight = 20 * 20; style.SetFont(font); ICell cell = row1.Cells[0];//獲取單元格對象 cell.CellStyle = style;//綁定樣式 //單元格合並 sheet.AddMergedRegion(new NPOI.SS.Util.CellRangeAddress(0, 0, 0, 8));//合拼了A1到I1 //設置文件的詳細信息 DocumentSummaryInformation dsi = PropertySetFactory.CreateDocumentSummaryInformation(); dsi.Company = "公司名稱";//公司 SummaryInformation si = PropertySetFactory.CreateSummaryInformation(); si.Subject = "主題";//主題 hssfworkbook.DocumentSummaryInformation = dsi; hssfworkbook.SummaryInformation = si; FileStream file = new FileStream(sFilePath, FileMode.Create); hssfworkbook.Write(file); file.Close(); return File(sFilePath, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "text.xls"); }