我一个数据列表里面有多选框,选择N个多选框后,点击导出excel后,保存时是个打包文件,程序里面做了以下几个步骤:
一、生成excel表,到服务器的某个目录下,如:excelfile目录下
二、对excelfile目录下的所有excel文件进行打包操作
问题是,为什么我在本地下能够执行所有操作,excel表能够打包并保存;
但是一那到服务器上远程操作的时候就出现问题了?
提示错误是,excel正在使用,无法打包,但是进程里又没有excel。exe这个程序运行请问下这是什么问题?

解决方案 »

  1.   

    excel在远程服务器上开发的!你这边只看到一个客户端的东西!! 所以不行
    原来你的机子即使服务端又是客户端!!
      

  2.   

    /// <summary>
            /// 用于生成压缩文件
            /// </summary>
            /// <param name="files">待生成文件的所在路径集合</param>
            /// <param name="filename">生成的压缩文件名</param>
            /// <param name="filepath">生成压缩文件存放路径</param>
            public void CompressionFiles(string[] files,string filepath,string filename)
            {
              ///压缩后生成的目标文件
                string destPath = System.IO.Path.GetDirectoryName(filepath);
                ZipOutputStream stream = new ZipOutputStream(File.Create(destPath + "\\Resume" + filename + ".zip"));
                stream.SetLevel(6);
              ///在该目标文件中逐个添加待生成的文件
                Crc32 cr32 = new Crc32();
              foreach(string file in files)
              {
                  int indexSplit = file.LastIndexOf("\\");
                  string subfilename = file.Substring(indexSplit + 1);
                 if(file!=""&&File.Exists(file))
                 {                
                     FileStream filestream = File.OpenRead(file);
                     byte[] buffer = new byte[filestream.Length];
                     filestream.Read(buffer, 0, (int)filestream.Length);
                     ZipEntry entry = new ZipEntry(file);
                     entry.DateTime = System.DateTime.Now;
                     entry.Size = filestream.Length;                 cr32.Reset();
                     cr32.Update(buffer);                 entry.Crc = cr32.Value;                 stream.PutNextEntry(entry);
                     stream.Write(buffer, 0, (int)filestream.Length);               
                 }
              }
              ///执行文件压缩
              stream.Finish();
              stream.Close();
            }
      

  3.   

    已经解决
    在打包前,生成excel表后
    加个延时操作