如何用javascript把数据转EXCEL的饼图输出

这个例子是我在做lotus notes生成excel柱形图时找的,贴出来供参考,这个例子的好处是把以下代码保存成html文件后可以运行并能看到效果

用javascript把数据导出到EXCEL并生产统计图 柱状图
<HTML>  
  <BODY>  
  Press   the   button   to   start   Excel   and   display   quarterly   data.  
  <SCRIPT   LANGUAGE="VBScript">  
  Function   CreateNamesArray()  
  '   Create   an   array   to   set   multiple   values   at   once.  
      Dim   saNames(5,   2)  
      saNames(0,   0)   =   "John"  
      saNames(0,   1)   =   "Smith"  
      saNames(1,   0)   =   "Tom"  
      saNames(1,   1)   =   "Brown"  
      saNames(2,   0)   =   "Sue"  
      saNames(2,   1)   =   "Thomas"  
      saNames(3,   0)   =   "Jane"  
      saNames(3,   1)   =   "Jones"  
      saNames(4,   0)   =   "Adam"  
      saNames(4,   1)   =   "Johnson"  
      CreateNamesArray   =   saNames  
  End   Function  
  </SCRIPT>  
   
  <SCRIPT   LANGUAGE="JScript">    
  function   AutomateExcel()  
  {  
        //   Start   Excel   and   get   Application   object.  
              var   oXL   =   new   ActiveXObject("Excel.Application");  
                 
              oXL.Visible   =   true;  
               
        //   Get   a   new   workbook.  
              var   oWB   =   oXL.Workbooks.Add();  
              var   oSheet   =   oWB.ActiveSheet;  
                     
        //   Add   table   headers   going   cell   by   cell.  
              oSheet.Cells(1,   1).Value   =   "First   Name";  
              oSheet.Cells(1,   2).Value   =   "Last   Name";  
              oSheet.Cells(1,   3).Value   =   "Full   Name";  
              oSheet.Cells(1,   4).Value   =   "Salary";  
                     
        //   Format   A1:D1   as   bold,   vertical   alignment   =   center.  
              oSheet.Range("A1",   "D1").Font.Bold   =   true;  
              oSheet.Range("A1",   "D1").VerticalAlignment   =     -4108;   //xlVAlignCenter  
                     
        //   Create   an   array   to   set   multiple   values   at   once.  
   
        //   Fill   A2:B6   with   an   array   of   values   (from   VBScript).  
              oSheet.Range("A2",   "B6").Value   =   CreateNamesArray();  
             
        //   Fill   C2:C6   with   a   relative   formula   (=A2   &   "   "   &   B2).  
              var   oRng   =   oSheet.Range("C2",   "C6");  
              oRng.Formula   =   "=A2   &   \"   \"   &   B2";  
                     
        //   Fill   D2:D6   with   a   formula(=RAND()*100000)   and   apply   format.  
              oRng   =   oSheet.Range("D2",   "D6");  
              oRng.Formula   =   "=RAND()*100000";  
              oRng.NumberFormat   =   "$0.00";  
                     
        //   AutoFit   columns   A:D.  
              oRng   =   oSheet.Range("A1",   "D1");  
              oRng.EntireColumn.AutoFit();  
                     
        //   Manipulate   a   variable   number   of   columns   for   Quarterly   Sales   Data.  
              DispalyQuarterlySales(oSheet);  
                   
        //   Make   sure   Excel   is   visible   and   give   the   user   control  
        //   of   Excel's   lifetime.  
              oXL.Visible   =   true;  
              oXL.UserControl   =   true;  
  }  
               
  function   DispalyQuarterlySales(oWS)  
  {  
              var   iNumQtrs,   sMsg,   iRet;  
   
          //   Number   of   quarters   to   display   data   for.  
              iNumQtrs   =   4;  
                                 
          //   Starting   at   E1,   fill   headers   for   the   number   of   columns   selected.  
              var   oResizeRange   =   oWS.Range("E1",   "E1").Resize(1,iNumQtrs);  
              oResizeRange.Formula   =   "=\"Q\"   &   COLUMN()-4   &   CHAR(10)   &   \"Sales\"";  
                     
          //   Change   the   Orientation   and   WrapText   properties   for   the   headers.  
              oResizeRange.Orientation   =   38;  
              oResizeRange.WrapText   =   true;  
                     
          //   Fill   the   interior   color   of   the   headers.  
              oResizeRange.Interior.ColorIndex   =   36;  
                     
          //   Fill   the   columns   with   a   formula   and   apply   a   number   format.  
              oResizeRange   =   oWS.Range("E2",   "E6").Resize(5,iNumQtrs);  
              oResizeRange.Formula   =   "=RAND()*100";  
              oResizeRange.NumberFormat   =   "$0.00";  
                     
          //   Apply   borders   to   the   Sales   data   and   headers.  
              oResizeRange   =   oWS.Range("E1",   "E6").Resize(6,iNumQtrs);  
              oResizeRange.Borders.Weight   =   2;     //   xlThin  
                     
          //   Add   a   Totals   formula   for   the   sales   data   and   apply   a   border.  
              oResizeRange   =   oWS.Range("E8",   "E8").Resize(1,iNumQtrs);  
              oResizeRange.Formula   =   "=SUM(E2:E6)";  
          //   9   =   xlEdgeBottom              
              oResizeRange.Borders(9).LineStyle   =   -4119;   //xlDouble  
              oResizeRange.Borders(9).Weight   =   4;   //xlThick  
                     
          //   Add   a   Chart   for   the   selected   data.  
              oResizeRange   =   oWS.Range("E2:E6").Resize(5,iNumQtrs);  
              var   oChart   =   oWS.Parent.Charts.Add();  
              oChart.ChartWizard(oResizeRange,   -4100,   null,   2);     //   -4100   =   xl3dColumn  
              oChart.SeriesCollection(1).XValues   =   oWS.Range("A2",   "A6");  
              for   (iRet   =   1;   iRet   <=   iNumQtrs;   iRet++)   {  
                    oChart.SeriesCollection(iRet).Name   =   "=\"Q"   +   iRet   +   "\"";  
              }  
              oChart.Location(2,   oWS.Name);   //   2   =   xlLocationAsObject  
                     
          //   Move   the   chart   so   as   not   to   cover   your   data.  
              oWS.Shapes("Chart   1").Top   =   oWS.Rows(10).Top;  
              oWS.Shapes("Chart   1").Left   =   oWS.Columns(2).Left;  
  }  
  </SCRIPT>  
  <P><INPUT   id=button1   type=button   value="Start   Excel"    
                      onclick="AutomateExcel"></P>  
  </BODY>  
  </HTML>

阅读更多
个人分类: Lotus-Design
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭