生活随笔
收集整理的這篇文章主要介紹了
使用NPOI库导入导出EXCEL
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
一、EXCEL ?導(dǎo)入(Excel 導(dǎo)入導(dǎo)出實(shí)際項(xiàng)目中會(huì)被封裝成**Helper 本示例只對(duì)簡(jiǎn)單功能做演示)
NPOI 包引用
視圖view
@{ViewBag.Title = "NPOIExcel";
}<h2>NPOIExcel</h2>
<form action="@Url.Action("NPOIInport", "Home")" method="post" enctype="multipart/form-data"><input type="file" name="Importexcelfile" /><button type="submit">提交</button>
</form>//enctype="multipart/form-data" 上傳文件時(shí)form 表單必加
Action
命名空間引用
using NPOI.SS.UserModel;
using NPOI.HSSF.UserModel;
using NPOI.XSSF.UserModel;
using System.Data;
/// <summary>/// NPOI 導(dǎo)入excel/// </summary>/// <returns></returns>
[HttpPost]public ActionResult NPOIInport(){bool isok =
false;string msg =
string.Empty;var file = Request.Files[
"Importexcelfile"];
//接收的文件對(duì)象var filename = SaveUploadExcel(file);
//將文件保存至某一路徑下 并形成新的文件名稱var filePath=System.Configuration.ConfigurationManager.AppSettings[
"Upload"] +
@"\excel\" + filename;
//新路徑IWorkbook workbook =
null;
//定義工作簿接口ISheet sheet=
null;
//定義sheet表DataTable data =
new DataTable();FileStream filestream =
new FileStream(filePath, FileMode.Open, FileAccess.Read);if (file.ContentLength>
0){if (filePath.IndexOf(
".xlsx") >
0){workbook =
new XSSFWorkbook(filestream);
//.xlsx 文件
}else{workbook =
new HSSFWorkbook(filestream);
//.xls文件
}sheet = workbook.GetSheetAt(
0);
//默認(rèn)第一個(gè)sheet sheet 下標(biāo)//sheet = workbook.GetSheet("sheet的名字");//獲取想要查詢sheet的名字if (sheet!=
null){for (
int i =
0; i < sheet.LastRowNum; i++
){IRow row = sheet.GetRow(i);
//獲取第一行 一般都是表頭var firstvalue = row.GetCell(
0);
//第一行的第一列var secondvalue = row.GetCell(
1);}//常見(jiàn)讀取excel 已經(jīng)夠用 實(shí)際項(xiàng)目中會(huì)遇到 再次封裝數(shù)據(jù)形成table 一般這個(gè)幫助類會(huì)叫**HelperIRow firstrow = sheet.GetRow(
0);int cellcount = firstrow.LastCellNum;
//總列數(shù)for (
int i = firstrow.FirstCellNum; i < cellcount; i++
){ICell icell =
firstrow.GetCell(i);if (icell!=
null){string cellvalue = icell.StringCellValue;
//獲取當(dāng)前單元格的valueDataColumn column =
new DataColumn(cellvalue);data.Columns.Add(column);//添加表頭
}}int startrow = sheet.FirstRowNum +
1;for (
int i = startrow; i < sheet.LastRowNum; i++
){IRow row =
sheet.GetRow(i);if (row!=
null){DataRow datarow =
data.NewRow();for (
int j = row.FirstCellNum; j < cellcount; j++
){if (row.GetCell(j)!=
null){datarow[j] =
row.GetCell(j).ToString();}}data.Rows.Add(datarow);}}//return data;
}}return Json(
new { Isok = isok, Msg =
msg });}public static string SaveUploadExcel(HttpPostedFileBase fileexcel){string filename =
fileexcel.FileName;string extension =
Path.GetExtension(filename);int filesize =
fileexcel.ContentLength;if (filesize>
int.Parse(System.Configuration.ConfigurationManager.AppSettings[
"UploadFileSize"])){return "文件超過(guò)上限";}string dirPath = System.Configuration.ConfigurationManager.AppSettings[
"Upload"] +
@"\excel\";//生成新的文件名string newFileName =
string.Format(
"{0}{1}", DateTime.Now.ToString(
"yyMMddHHmmssfffffff"), extension);if (!
Directory.Exists(dirPath))Directory.CreateDirectory(dirPath);fileexcel.SaveAs(dirPath +
newFileName);//返回新生成的文件名稱return newFileName;} View Code ?
二、EXCEL 導(dǎo)出
?
?
?
轉(zhuǎn)載于:https://www.cnblogs.com/eric-gms/p/6907595.html
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)
總結(jié)
以上是生活随笔為你收集整理的使用NPOI库导入导出EXCEL的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。