2010-03-03 141 views
1

我有一個PHP Web應用程序,它使用ActiveXObject將表格的內容導出到Excel電子表格中。對於某些單元格我有一些格式化(單元格對齊,貨幣,日期等),但我需要合併前3個單元格,然後導入圖像。我一直在尋找,但沒有任何喜悅。如果有人知道這是否可能,請讓我知道!歡呼聲中,薩穆埃爾使用ActiveXObject(「Excel.Application」)將圖像插入Excel單元格

function ExportToExcel() { 
    input_box=confirm("Export to Microsoft Excel?"); 
     if (input_box==true) { 

      var xlApp = new ActiveXObject("Excel.Application"); 
      // Silent-mode: 
      xlApp.Visible = true; 
      xlApp.DisplayAlerts = false; 
      var xlBook = xlApp.Workbooks.Add(); 
      xlBook.worksheets("Sheet1").activate; 
      var XlSheet = xlBook.activeSheet; 
      XlSheet.Name="Company Report"; 

      // Store the sheet header names in an array 
      var rows = tblreport_invoice.getElementsByTagName("tr"); 
      var columns = tblreport_invoice.getElementsByTagName("th"); 
      var data = tblreport_invoice.getElementsByTagName("td"); 

      // Set Excel Column Headers and formatting from array 
      for(i=0;i<columns.length;i++){ 
       XlSheet.cells(2).value= "Company Quote"; 
       XlSheet.cells(3,i+1).value= columns[i].innerText; //XlSheetHeader[i]; 
       XlSheet.cells(3,i+1).font.color="6"; 
       XlSheet.cells(3,i+1).font.bold="true"; 
       XlSheet.cells(3,i+1).interior.colorindex="37"; 
       XlSheet.Range("K4:K200").NumberFormat = "€ #,##0.00"; 
       XlSheet.Range("L4:L200").NumberFormat = "€ #,##0.00"; 
       XlSheet.Range("O4:O200").NumberFormat = "€ #,##0.00"; 
       XlSheet.Range("P4:P200").NumberFormat = "€ #,##0.00"; 
       XlSheet.Range("Q4:Q200").NumberFormat = "€ #,##0.00"; 
       XlSheet.Range("R4:R200").NumberFormat = "€ #,##0.00"; 
       XlSheet.Range("K4:L1000").HorizontalAlignment = -4152; 
       XlSheet.Range("M4:M1000").HorizontalAlignment = -4152; 
       XlSheet.Range("N4:Q1000").HorizontalAlignment = -4152; 
       XlSheet.Range("R4:R1000").HorizontalAlignment = -4152; 
       XlSheet.Range("F4:F1000").NumberFormat = "MM/DD/YYYY"; 
      } 

      //run over the dynamic result table and pull out the values and insert into corresponding Excel cells 
      var d = 0; 
      for (r=4;r<rows.length+3;r++) { // start at row 2 as we've added in headers - so also add in another row! 
       for (c=1;c<columns.length+1;c++) { 
        XlSheet.cells(r,c).value = data[d].innerText; 
        d = d + 1; 
       } 
      } 

      //autofit the columns 
      XlSheet.columns.autofit; 

      // Make visible: 
      xlApp.visible = true; 
      xlApp.DisplayAlerts = true; 
      CollectGarbage(); 
      //xlApp.Quit(); 
     } 
} 

回答

1

//插入公司徽標在頁面

MyPic = XlSheet.Pictures.Insert("c:\\1.jpg"); 
      MyPic.Top = XlSheet.Range("A1").Top; 
      MyPic.Left = XlSheet.Range("A1").Left; 
      MyPic.ShapeRange.Height = XlSheet.Range("A1").RowHeight * 2; 
的頂部
相關問題