用流形式读取Excel文件内容显示至Table中并保存到指定文件目录

                     用流形式读取Excel并保存

选择需要上传的Word文档,将选中的Excel文档保存至指定的项目中,将保存的Excel文档里边全部内容传到视图中,用Table形式将Excel文档内容显示,并将文件保存至指定项目中去
Excel图内容如下:
用流形式读取Excel文件内容显示至Table中并保存到指定文件目录_第1张图片
操作图:
用流形式读取Excel文件内容显示至Table中并保存到指定文件目录_第2张图片

操作完成图:
用流形式读取Excel文件内容显示至Table中并保存到指定文件目录_第3张图片

操作完成后文件保存到指定位置:
用流形式读取Excel文件内容显示至Table中并保存到指定文件目录_第4张图片

视图代码如下:(视图HTML)
用流形式读取Excel文件内容显示至Table中并保存到指定文件目录_第5张图片

视图方法:
用流形式读取Excel文件内容显示至Table中并保存到指定文件目录_第6张图片

解析:先选中文件,声明FormData,将选中的文件添加至FormData中,用ajax提交,声明数组,将获取到的数据丢到数组中,for循环遍历全部的数据
控制器代码如下:
public ActionResult JXGNTheTestCase1(HttpPostedFileBase file)
{
Microsoft.Office.Interop.Excel.Application excel = null;//声明一个空的Excel对象
List myListone = new List();//二维列表(列表A嵌套列表B,显示AB数据)
try
{
string fileName = file.FileName;//获取文件名
string path = base.Server.MapPath("//" + fileName);//获取文件保存路径
file.SaveAs(path);///保存文件
DataSet myData = new DataSet();

            excel = new Microsoft.Office.Interop.Excel.Application();//lauch excel application
            if (excel == null)
            {
                Response.Write("");
            }
            else
            {
                excel.Visible = false; excel.UserControl = true;
                int indexOne = 0;
                string strConn = string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties='Excel 12.0;HDR=Yes;IMEX=1;'", path);

                OleDbDataAdapter myCommand = new OleDbDataAdapter("SELECT * FROM [测试$]", strConn);//Excel文件名称
                      myCommand.Fill(myData);
                      
                for (int i = indexOne; i < myData.Tables[0].Rows.Count; i++) //获取数据 
                {
                    string DataRow = "";
                    List myList = new List();
                    int count = 0;
                    for (int j = 0; j < myData.Tables[0].Columns.Count; j++)
                    {
                            DataRow = myData.Tables[0].Rows[i][j].ToString();
                            myList.Add(DataRow);
                            if (DataRow == "")
                            {
                                count++;
                            }
                    }
                    if (count < myData.Tables[0].Columns.Count)
                    {
                        myListone.Add(myList);
                    }
                }
                for (int i = 0; i < myListone.Count; i++)
                {
                    List myList = myListone[i];

                    string row = myList[0].ToString();// 获取内容
                }
            }
        }
      
        catch (Exception e)
        {
            string strMessges = e.Message.ToString();
        }
        finally
        {

            excel.Quit(); excel = null;
            Process[] procs = Process.GetProcessesByName("excel");

            foreach (Process pro in procs)
            {
                pro.Kill();//没有更好的方法,只有杀掉进程
            }
            GC.Collect();
        }
        return Json(myListone, JsonRequestBehavior.AllowGet);
    }
 
  

注:使用该方法需要添加引用,如下图:
用流形式读取Excel文件内容显示至Table中并保存到指定文件目录_第7张图片

你可能感兴趣的:(用流形式读取Excel文件内容显示至Table中并保存到指定文件目录)