MVC上传Excel读取数据

4 篇文章 0 订阅

HTML

<a class="easyui-linkbutton l-btn-new-plain" data-options="iconCls:'icon-remove'" οnclick="Import()">导入</a>

<input type="file" id="fileTxt2" οnchange="isHaveFile()" style="display:none" />

JS

function Import() {
        $("#fileTxt2").click();
    }
    function isHaveFile() {
        var path = $("#fileTxt2").val();
        if (path != "") {
            uploadFile();
        }
        //datagridReload();
    }
    function uploadFile() {
        $("#jdtDiv").css("display", "inline-block");
        var fd = null;
        try {
            fd = new FormData();
        } catch (e) {
            alert('当前导入需要选择非IE8的浏览器,建议用其他浏览器!');
            $("#jdtDiv").hide();
            return;
        }
        fd.append("fileInput", document.getElementById('fileTxt2').files[0]);
        var xhr = new XMLHttpRequest();
        xhr.upload.addEventListener("progress", uploadProgress, false);
        xhr.addEventListener("load", uploadComplete, false);
        xhr.addEventListener("error", uploadFailed, false);
        xhr.addEventListener("abort", uploadCanceled, false);
        xhr.open("POST", "UploadExcel");//FileUploads
        xhr.send(fd);
    }
    function uploadProgress(evt) {
        if (evt.lengthComputable) {
            var percentComplete = Math.round(evt.loaded * 100 / evt.total);
        }
        else {
            document.getElementById('percentNumber').innerHTML = '不支持进度计算';
        }
    }
    function uploadComplete(evt) {
        var serverMsg = evt.target.responseText;
        alert(serverMsg);
        $("#fileTxt2").val("");
        $("#jdtDiv").hide();
    }
    function uploadFailed(evt) {
        var serverMsg = evt.target.responseText;
        AlertMsg(serverMsg);
        $("#jdtDiv").hide();
    }
    function uploadCanceled(evt) {
        alert('用户取消了上传或者浏览器删除了连接!');
        $("#jdtDiv").hide();
    }
MVC

IWorkbook workbook = null;
        public ActionResult UploadExcel()
        {
            HttpPostedFileBase filebase = Request.Files[0];
            string type = "2003";
            if (filebase == null)
            {
                return Content("没有文件");
            }
            else
            {
                if (filebase.FileName.Contains(".xlsx"))
                    type = "2007";
            }
            string backMsg = ImportExcelToDB(filebase.InputStream, type);
            return Content(backMsg);
        }
        public string ImportExcelToDB(Stream steam, string type)
        {
            AdminLoginUser user = Session["user"] as AdminLoginUser;
            string importDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
            try
            {
                if (type == "2003")
                    workbook = new HSSFWorkbook(steam);
                else
                    workbook = new XSSFWorkbook(steam);
                if (workbook != null)
                {
                    ISheet sheet = workbook.GetSheetAt(0);
                    int rows = sheet.PhysicalNumberOfRows;//获取行数
                    for (int index = 1; index < rows; index++)
                    {
                        IRow row = sheet.GetRow(index);
                        try
                        {
                            if (row == null)
                            {
                                continue;
                            }
                            //tb_Question tb_q = new tb_Question();
                            //tb_q.IType = row.Cells[0].ToString().Trim().Contains("单选") ? 1 : row.Cells[0].ToString().Trim().Contains("多选") ? 2 : 3;
                            //tb_q.Title = row.Cells[1].ToString().Trim();

                        }
                        catch (Exception ex)
                        {
                            return "数据格式有误:第" + index + "行。";
                        }
                    }
                }
                steam.Close();
                steam.Dispose();
                return "导入成功";
            }
            catch (Exception ex)
            {
                string msg = ex.Message.Replace("\r\n", "");
                return msg;
            }
        }
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你好!关于Java上传Excel文件的功能开发,你可以使用Apache POI库来实现。下面是一个简单的步骤指南: 1. 导入Apache POI库:在你的项目中添加Apache POI的依赖,可以通过Maven或Gradle来进行配置。 2. 创建上传文件的表单:在你的前端页面中创建一个表单,用于选择Excel文件并提交上传。 3. 后端处理上传文件:在后端代码中,你需要处理上传的文件。可以使用Spring MVC或Servlet来接收文件,并保存到服务器的临时目录。 4. 解析Excel文件:使用Apache POI库来解析上传Excel文件。根据你的需求,可以选择使用HSSF(用于处理Excel 2003及之前版本)或XSSF(用于处理Excel 2007及之后版本)。 5. 读取Excel数据:通过POI库提供的API,你可以读取Excel文件中的数据。根据Excel文件的结构,使用合适的API方法来提取数据。 6. 处理Excel数据:根据你的业务需求,对读取到的Excel数据进行处理。你可以将数据存储到数据库中,进行进一步的计算或展示等操作。 7. 返回处理结果:将处理后的结果返回给前端页面,可以是成功或失败的消息,或者是处理后的数据展示。 需要注意的是,对于大型Excel文件或者需要处理大量数据的情况,建议采用流式处理(Streaming API)来避免内存溢出的问题。 希望以上步骤能对你的Java上传Excel文件功能开发有所帮助!如果还有其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值