关于Excel上传,是否都要保存了,才能分析里面的数据?
为什么呢?既然是上传Excel,那么可以直接找到路径,并且分析阿

解决方案 »

  1.   

    你要知道b/s和c/s是不同的,你的excel在客户端还没上传到服务器的情况下,服务器是没办法也没权限得到excel里面的内容的,除非你在客户端使用activex,然后将数据上传
      

  2.   

    大概我没讲清楚:
    如果是文本文件, StreamReader sr = new StreamReader(Request.Files[0].InputStream, Encoding.ASCII);
    这样之后我就可以对其分析:
     while (sr.Peek() >= 0)
                {
                    string lineData = sr.ReadLine();
    但我看了前辈的上传Excel格式,却发现:
    HttpPostedFile UploadFile = File1.PostedFile;
    Stream UploadFileStream = UploadFile.InputStream;string strReportFolder = ConfigurationManager.AppSettings.Get("SOUploadExcelPath").ToString();
    string strPath = @strReportFolder + @"\" + DateTime.Today.Year + @"\" + DateTime.Today.Month + @"\";
    AccFileServices.ExistsAndCreateFolder(strPath);
    Guid guidnew = Guid.NewGuid();
    string strDownloadFileName = guidnew.ToString() + ".xls";
    strDownloadFileName = @strPath + strDownloadFileName;AccFileServices.SaveStreamToDisk(strDownloadFileName, UploadFileStream, false);//我的就是这里为什么非要有个保存动作,不能直接根据上传路径,从原来的地方获取Excel内容么?string strCon = "Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source = " + strDownloadFileName + ";Extended Properties=Excel 8.0";
    OleDbConnection myConn = new OleDbConnection(strCon);
    string strCom = "SELECT * FROM [" + TextBox1.Text.Trim() + "$] ";
    myConn.Open();
    myCommand = new OleDbDataAdapter(strCom, myConn);
    DataSet myDataSet = new DataSet();
    myCommand.Fill(myDataSet, "[" + TextBox1.Text.Trim() + "$]");
    DataTable myTable = myDataSet.Tables[0];然后再分析