兄弟们,姐妹们,大哥大姐们:
请问 在web页面上如何实现 弹出对话框 选择文件夹并 保存多个excel文件?
求指教

解决方案 »

  1.   

    本帖最后由 net_lover 于 2011-07-12 17:17:51 编辑
      

  2.   

    多个文件?最好是先压缩然后再下载,网上有一个控件很容易实现这功能的  SharpZipLib.dll
      

  3.   

    高手们 说的我 不太明白……我是导出多个Excel文件,保存在同一文件夹下的……
      

  4.   

    这种情况建议你先将多个Excel文件先放在服务器的临时文件夹里进行打包,然后再导出。
      

  5.   

    不如导出多个SHEET。参考
      

  6.   

    不是给你解决方法了吗?你需要使用多个iframe
    <iframe src="d.aspx?file=1" style="display:none"></iframe>
    <iframe src="d.aspx?file=2" style="display:none"></iframe>再次给你说一下,客户端的路径你是不能控制的
      

  7.   


    路径是可以由用户选择的! 只是一个导出按钮 通过程序将多个处理好的Excel 保存
      

  8.   

    不是给你说了吗,使用iframe,或者打包下载
      

  9.   

    public static bool ExportExcel(string strFileName, DataSet ds)
      {
      if (ds == null || ds.Tables.Count == 0)
      return false;
      Excel.Application appExcel = new Excel.Application();
      Excel.Workbook workbookData;
      Excel.Worksheet worksheetData;  // set culture to US
      System.Globalization.CultureInfo CurrentCI = System.Threading.Thread.CurrentThread.CurrentCulture;
      System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-US");
      workbookData = appExcel.Workbooks.Add(Missing.Value);  int iSheet = 0;  DataTable dt = new DataTable();  for (int k = 0; k< ds.Tables.Count; k++)
      {
      worksheetData = (Excel.Worksheet)workbookData.Worksheets.Add(Missing.Value, Missing.Value, Missing.Value, Missing.Value);
      dt = ds.Tables[k];
      for (int i = 0; i < dt.Columns.Count; i++)
      {
      worksheetData.Cells[1, i + 1] = dt.Columns[i].ColumnName.Trim();
      }  iSheet += 1;  Excel.Range xlRang = null;
      int iRowCount = dt.Rows.Count;
      int iParstedRow = 0, iCurrSize = 0;
      int iEachSize = 1000; // each time you  
      int iColumnAccount = dt.Columns.Count;  object[,] objVal = new object[iEachSize, iColumnAccount];
      try
      {
      iCurrSize = iEachSize;
      while (iParstedRow < iRowCount)
      {
      if ((iRowCount - iParstedRow) < iEachSize)
      iCurrSize = iRowCount - iParstedRow;
      for (int i = 0; i < iCurrSize; i++)
      {
      for (int j = 0; j < iColumnAccount; j++)
      objVal[i, j] = dt.Rows[iParstedRow + i][j].ToString();
      }
      // Get Save Range from Excel WorkSheet
      // such as A1 H10, means From A to H Columns, and 1 to 10 rows
      xlRang = worksheetData.get_Range("A" + ((int)(iParstedRow + 2)).ToString(), ((char)('A' + iColumnAccount - 1)).ToString()
      + (((int)(iParstedRow + iCurrSize + 1)).ToString()));  xlRang.Value2 = objVal;
      iParstedRow = iParstedRow + iCurrSize;
      }
      System.Runtime.InteropServices.Marshal.ReleaseComObject(xlRang);
      xlRang = null;  }
      catch
      {
      return false;
      }
      }
      // return to previous culture
      System.Threading.Thread.CurrentThread.CurrentCulture = CurrentCI;  workbookData.Saved = false;
      workbookData.SaveAs(strFileName, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Excel.XlSaveAsAccessMode.xlNoChange, Missing.Value, Missing.Value, Missing.Value, Missing.Value);  appExcel.Quit();  return true;
      }
    //没有考虑一个sheet的列限制