2012-11-09 68 views
0

我有一個桌面應用程序,我可以從一個模板生成一個excel文件,基本上我所做的就是將模板excel文件複製到一個新目錄中,打開它,並添加記錄。從asp.net中的模板生成excel文件

這是一個代碼片段:

string ExcelFiles = txtFileOutput.Text; //Application.StartupPath + @"\ExcelFiles\"; 
     string DestFile = ExcelFiles + FinalListOfTrucks[0].Date.ToShortDateString().Replace('/', '_') + ".xlsx"; 
     if (File.Exists(DestFile)) 
     { 
      try 
      { 
       File.Delete(DestFile); 
      } 
      catch (Exception ex) 
      { 
       MessageBox.Show("Error deleting file: " + ex.Message); 
      } 
     } 

     try 
     { 
      File.Copy(Application.StartupPath + @"\ExcelTemplate.xlsx", DestFile); 
     } 
     catch (Exception ex) 
     { 
      MessageBox.Show("Error copying file: " + ex.Message); 
     } 

     string appPath = Path.GetDirectoryName(Application.ExecutablePath);    
     string strConnectionXls = "Provider=Microsoft.ACE.OLEDB.12.0;" + "Data Source=" + DestFile + ";Extended Properties=Excel 12.0;"; 
     OleDbConnection cno = new OleDbConnection(strConnectionXls); 
     OleDbCommand cmo = new OleDbCommand(); 
     cmo.Connection = cno; 
     cmo.CommandType = CommandType.Text; 

string QueryHeader = "INSERT INTO [RptTotal$] (NUMERO,FECHA,JORNADA,PLACA,HORA_DE_LLEGADA,HORA_FIN_CARGUE,HORA_FIN_DESCARGUE,VOLUMEN,DISTANCIA,TIPO_DE_VEHICULO,MATERIAL,MISSED_DATE)"; 

cmo.CommandText = QueryHeader + " VALUES ('" + No.ToString() + "','" + Fecha + "','" + Jornada + "','" + Placa + "','" + HoraDeLlegada + "','" + HoraFinCargue + "','" + 
                 HoraFinDescargue + "','" + Volumen + "','" + Distancia + "','" + TipoDeVehiculo + "','" + Material + "','" + MissedDate + "')"; 
       cmo.ExecuteNonQuery(); 

現在,讓我們說,我可以將文件夾添加到我的web應用程序,並把Excel模板存在,如何從那裏開始實現網絡相同的功能:\?

回答

1

你在桌面應用程序上做的同樣的事情,只需要清理你的代碼。

  1. 複製模板,保存templete相同凡在你的服務器
  2. 需要刪除所有消息框
  3. 使用的OleDbConnection修改Excel文件(強烈推薦OpenXML或庫建立在像Epplus OpenXML的頂部)
  4. 保存更改
  5. 文件流客戶
  6. 圖如何清理的流媒體文件
+0

但我想保留模板文件爲空,這就是爲什麼我首先將它複製到另一個位置,我想我需要在這裏做同樣的事情嗎?就像將模板文件上傳到服務器,將其更改並將其傳輸到客戶端。 Yeap,這就是你在第一點所說的:| – Somebody

+0

您需要做同樣的事情,但是您需要弄清楚命名方案(以便不同的請求將具有不同的文件)以及在將文件發送給用戶後如何刪除文件。 –