.NET MVC上传一个文件,用NPOI解析后在界面上显示
来源:互联网 发布:淘宝2016版本下载6.7.2 编辑:程序博客网 时间:2024/06/05 14:20
上传一个Excel并解析,将解析结果存到DataTable中,然后再页面显示
1. 后台上传和解析代码
public class ExcelController : Controller
{
public ActionResult ExcelUpload()
{
return View();
}
public ActionResult ExcelUploadSubmit(string excelTitle)
{
HttpPostedFileBase excelFile = Request.Files["excelFile"]; //取到上传域
if (null != excelFile)
{
string fileName = Path.GetFileName(excelFile.FileName); //取到文件的名称
if(fileName.Equals("")||null == fileName){ //没有选择文件就上传的话,则跳回到上传页面
return View("ExcelUpload");
}
string serverpath = Server.MapPath("/");
excelFile.SaveAs(serverpath + @"\Upload\" + fileName); //保存上传文件
//parse the excel
//save the excel content in the datatable
DataTable dt = new DataTable();
dt.Columns.Add("Dept", Type.GetType("System.String"));
dt.Columns.Add("FlowName", Type.GetType("System.String"));
dt.Columns.Add("CurrUser", Type.GetType("System.String"));
dt.Columns.Add("ApplyUser", Type.GetType("System.String")); //新建一个DataTable,并指定列和列的类型
FileStream inputStream = new FileStream(serverpath + @"\Upload\" + fileName, FileMode.Open);
HSSFWorkbook workbook = new HSSFWorkbook(inputStream); //解析上传的Excel
HSSFSheet sheet = workbook.GetSheetAt(0) as HSSFSheet;
int rowNum = sheet.PhysicalNumberOfRows;
for (int i = 0; i < rowNum;i++ )
{
HSSFRow row = sheet.GetRow(i) as HSSFRow;
int cellNum = row.PhysicalNumberOfCells;
DataRow newRow = dt.NewRow(); //DataTable创建新行
for (int j = 0; j < cellNum;j++ )
{
HSSFCell cell = row.GetCell(j) as HSSFCell;
if (cell.CellType == CellType.Numeric)
{
newRow[j] = cell.NumericCellValue; //给新建的行加列
}
else {
newRow[j] = cell.StringCellValue;
}
}
dt.Rows.Add(newRow); //新建的行加入到DataTable中
}
ViewData["excelTitle"] = excelTitle;
ViewData["dt"] = dt; //存起来以便在前台显示
}
return View("ExcelUpload");
}
}
2. 前台的页面ExcelUpload.aspx
<form action="/Excel/ExcelUploadSubmit" method="post" enctype="multipart/form-data">
<p>
Title: <input id="excelTitle" name="excelTitle" type="text" />
</p>
<p>
File: <input id="excelFile" name="excelFile" type="file" />
</p>
<p>
<input id="Submit1" type="submit" value="submit"/></p>
</form>
<table id="dataTable">
<tr>
<td colspan="4" align="center">
<%=ViewData["excelTitle"]%>
</td>
</tr>
<%
DataTable dt = (DataTable)ViewData["dt"];
if(null != dt){
for (int i = 0; i < dt.Rows.Count;i++ )
{
%>
<tr>
<td><%=dt.Rows[i]["Dept"]%></td>
<td><%=dt.Rows[i]["FlowName"]%></td>
<td><%=dt.Rows[i]["CurrUser"]%></td>
<td><%=dt.Rows[i]["ApplyUser"]%></td>
</tr>
<%
}
%>
<%
}
%>
</table>
- .NET MVC上传一个文件,用NPOI解析后在界面上显示
- asp.net上传execl文件后,在页面上加载显示。
- ASP.NET MVC-- 在网页上显示一个时钟
- Asp.net MVC 中的一个文件上传
- httpClient上传文件 在Spring MVC中解析文件
- Ext.Net在ASP.NET MVC中的文件上传
- 网页上传excel文件到服务器,服务端用NPOI解析excel
- ASP.NET操作Excel---上传Excel后解析Excel文件
- 求如何利用struts2从本地解析一个cvs文件并显示在页面上
- 在.net MVC中异步上传图片或者文件
- 在ASP.NET MVC中实现大文件异步上传
- Qt 在布局好的界面上显示一个控件
- Json解析后显示在listview控件上
- ASP.NET MVC 上传文件
- ASP.NET MVC - 文件上传
- asp.net MVC上传文件
- asp.net mvc文件上传
- ASP.NET MVC上传文件
- 哪些编程语言、框架/平台最受企业青睐?
- 强烈推荐shop++3.0源代码
- VMware虚拟机瘦身技巧
- 查找练习 hash——出现过的数字(哈希查找)
- C3P0连接池配置解决MySQL连接的空闲时间超过8小时后自动断开连接的问题
- .NET MVC上传一个文件,用NPOI解析后在界面上显示
- 侍从骑士考核
- jdk的环境变量配置
- Error creating bean with name 'memcachedClient'...java.lang.OutOfMemoryError
- C# 通过HWND获取IE的IWebBrowser2接口
- zlib库剖析(一)
- “黑马程序员” 主方法中main(String [] args) 加String [] args有什么现实意义(网络整理)
- 惠普发明了一种计算机
- zlib剖析(二)