ASP.NET MVC编程入门--Excel上传

参考博客:ASP.NET MVC下使用文件上传

参考博客:NPOI使用手册

参考博客:ASP.Net MVC利用NPOI导入导出Excel

参考博客:C# NPOI 导入与导出Excel文档 兼容xlsx, xls

文件上传代码块

        #region EXCEL上传
        /// <summary>
        /// EXCEL上传
        /// </summary>
        /// <param name="fileData"></param>
        /// <returns></returns>
        [AcceptVerbs(HttpVerbs.Post)]
        public JsonResult ExcelUpload(HttpPostedFileBase fileData)
        {
            json.HttpResult result = new json.HttpResult();
            if (fileData == null)
            {
                result.state = json.ResultType.error.ToString();
                result.message = "";
                return Json(new { result }, JsonRequestBehavior.AllowGet);
            }
            try
            {
                // 文件上传后的保存路径
                string filePath = Request.ApplicationPath + "UpLoad/Excel/";
                if (CreateFilePath(filePath))
                {
                    string fileName = Path.GetFileName(fileData.FileName);// 原始文件名称
                    string fileExtension = Path.GetExtension(fileName); // 文件扩展名
                    string saveName = Guid.NewGuid().ToString("N") + fileExtension; // 保存文件名称
                    string excelPath = filePath + saveName;
                    fileData.SaveAs(filePath + saveName);
                    DataTable dt = GetExcelData(excelPath);

                    bool re = bll.ProductManager.AddDataTable(dt);
                    common.SysLog.InsertListLog(common.SysLog.PRODUCT_MODULE, common.SysLog.OPERATE_INSERT_LIST, dt.Rows.Count);

                    result.state = json.ResultType.success.ToString();
                    result.message = json.ResultMessage.SUCCESS;
                }
            }
            catch (Exception ex)
            {
                result.state = json.ResultType.error.ToString();
                result.message = ex.Message;
            }
            return Json(new { result }, JsonRequestBehavior.AllowGet);
        }
        #endregion

组建DataTable代码块

        #region 获取Excel DataTable
        /// <summary>
        /// 获取Excel DataTable
        /// </summary>
        /// <param name="filePath"></param>
        /// <returns></returns>
        private DataTable GetExcelData(string filePath)
        {
            DataTable dt = new DataTable();
            IWorkbook workbook;
            string fileExt = Path.GetExtension(filePath).ToLower();

            using (FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read))
            {
                //XSSFWorkbook 适用XLSX格式,HSSFWorkbook 适用XLS格式
                if (fileExt == ".xlsx")
                {
                    workbook = new XSSFWorkbook(fs);
                }
                else if (fileExt == ".xls")
                {
                    workbook = new HSSFWorkbook(fs);
                }
                else
                {
                    return null;
                }
            }

            ISheet sheet = workbook.GetSheetAt(0);
            IRow headerRow = sheet.GetRow(sheet.FirstRowNum);//第一行为标题行

       /***************************************/return dt;
        }
        #endregion
时间: 2024-10-07 05:29:52

ASP.NET MVC编程入门--Excel上传的相关文章

asp.net mvc ajax.beginform()无法上传文件

Asp.Net Mvc使用Ajax.BeginForm上传文件Request.Files始终为null. 使用jquery.form.js插件能解决问题.asp.net mvc ajax.beginform()无法上传文件

用Fine Uploader+ASP.NET MVC实现ajax文件上传[代码示例]

Fine Uploader(http://fineuploader.com/)是一个实现 ajax 上传文件的 Javascript 组件. This project attempts to achieve a user-friendly file-uploading experience over the web. It's built as a Javascript plugin for developers looking to incorporate file-uploading int

ASP.NET MVC下使用文件上传

这里我通过使用uploadify组件来实现异步无刷新多文件上传功能. 1.首先下载组件包uploadify,我这里使用的版本是3.1 2.下载后解压,将组件包拷贝到MVC项目中 3.  根目录下添加新文件夹Uploads,然后新建控制器UploadifyController.cs using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Web; using S

[Fine Uploader] 用Fine Uploader+ASP.NET MVC实现ajax文件上传[代码示例]

Fine Uploader(http://fineuploader.com/)是一个实现 ajax 上传文件的 Javascript 组件 This project attempts to achieve a user-friendly file-uploading experience over the web. It's built as a Javascript plugin for developers looking to incorporate file-uploading into

asp.net.mvc 的单文件上传和多文件上传的简单例子

首先打开vs2012,创建空的mvc4项目,名称为MVCStudy,选择基本模板 1)创建项目后,基本结构是这样的 2)建立对应的HomeController,视图index.fileupload.success.error页面 3)控制器源码 using System;using System.Collections.Generic;using System.IO;using System.Linq;using System.Web;using System.Web.Mvc;using Sys

asp.net mvc 文件跨域上传,接收返回结果

在系统中我们可能有各种各样的文件上传,这样我们可能会把文件模块单独部署一台服务器,这样在上传时就会遇到跨域问题.我们可以先上传到服务端然后通过httpClient等技术再上传到文件服务器,这样就不会存在跨域问题,但是这样多出了服务器中转的一个步骤,现在我们说一下如何在客户端直接跨域上传到文件服务器. 1.文件服务器部署一个文件上传接口(实现技术:webapi,webservice,mvc等等) 文件上传接口示例如下(MVC方式): /// <summary> /// 上传接口 /// <

ASP.NET MVC编程入门--网站访问统计

参考文章:Asp.Net MVC3.0网站统计登录认证的在线人数 参考文章:ASP.net中网站访问量统计方法代码 Global 代码: protected void Application_Start() { Application["online"] = 0; ///在应用程序第一次启动时初始化在线人数为0 AreaRegistration.RegisterAllAreas(); RouteConfig.RegisterRoutes(RouteTable.Routes); log4

ASP.NET MVC编程入门--MVC5 传递参数与初始化数据

传递参数格式: $(".limit").live("click", function () { top.location = "/Product/Index?id='0'"; }); 后台接收参数如下: [HttpGet] public ActionResult Index() { string name = Request.Params["id"]; models.Product product = new models.P

Asp.net实现MVC处理文件的上传下载功能实例教程

这篇文章主要介绍了Asp.net实现MVC处理文件的上传下载功能,比较全面而系统的对Asp.net MVC的文件上传下载功能进行了深入分析,有很好的借鉴价值,需要的朋友可以参考下 上传于下载功能是程序设计中非常常见的一个功能,在ASP.NET程序开发中有着非常广泛的应用.本文就以实例形式来实现这一功能. 一.概述 如果你仅仅只有Asp.net Web Forms背景转而学习Asp.net MVC的,我想你的第一个经历或许是那些曾经让你的编程变得愉悦无比的服务端控件都驾鹤西去了.FileUploa