开发笔记

c#获取excel中某一单元格内容

2018-12-23  本文已影响0人  孤傲小狼

//调用getExcelOneCell函数的整个过程,删掉了源代码中的实际需求部分,只保留调用和使用过程

using Microsoft.Office.Interop.Excel;

//界面接受选择的excel文件

public ActionResult InputProFundSummary()

        {

            HttpPostedFileBase file = Request.Files["file"];//接收客户端传递过来的数据.

            if (String.IsNullOrEmpty(file.FileName))

            {

                return RedirectToAction("InputData", new { status = "请您选择导入Excel文件" });

            }

            string SaveFilePath = Server.MapPath("~/TempFiles/") + file.FileName;

            file.SaveAs(SaveFilePath);

            string ret = "";

            try

            {

                ret = InputProfundData(SaveFilePath, file.FileName);

                //----------上传临时文件---------

                UtiHelper.DeleteFile(SaveFilePath);

            }

            catch (Exception ex)

            {

                return RedirectToAction("InputData", new { status = "导入失败:" + ex.Message });

            }

            return RedirectToAction("InputData", new { status = ret == "true" ? "导入成功" : "导入失败" });

        }

private string InputProfundData(string fileName, string prono)

        {

            var targetFile = new FileInfo(fileName);

            string strfile = targetFile.ToString();

            string  contents= ExcelHelp.getExcelOneCell(strfile, 2, 5);//获取第2行第5列的内容

            return contents;

        }

//获取excel中某一行某一列的内容

public string getExcelOneCell(string fileName, int row, int column)

        {

            Microsoft.Office.Interop.Excel.Application app = new Application();

            Workbook wbook = app.Workbooks.Open(fileName, Type.Missing, Type.Missing,

              Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing,

              Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing,

              Type.Missing, Type.Missing);

            Worksheet workSheet = (Worksheet)wbook.Worksheets[1];

            string temp = ((Range)workSheet.Cells[row, column]).Text.ToString();

            wbook.Close(false, fileName, false);

            app.Quit();

            NAR(app);

            NAR(wbook);

            NAR(workSheet);

            return temp;

        }

        //此函数用来释放对象的相关资源

        private void NAR(Object o)

        {

            try

            {

                //使用此方法,来释放引用某些资源的基础 COM对象。 这里的o就是要释放的对象

                System.Runtime.InteropServices.Marshal.ReleaseComObject(o);

            }

            catch { }

            finally

            {

                o = null; GC.Collect();

            }

        }

上一篇 下一篇

猜你喜欢

热点阅读