PB 數據窗口導出EXCEL報表-個人例子

  1. string   ls_docname,   ls_named,ls_myvalue     
  2.   
  3.   integer   li_value,li_excelok,   li_i,   li_j     
  4.   
  5. //  if   dw_2.rowcount()<1   then   return     
  6.   
  7.   li_value   =   GetFileSaveName("導出設置",ls_docname,   ls_named,   "DOC",   &     
  8.   
  9.   "Excel (*.xls),*.xls,")     
  10.   
  11.   IF   li_value   =   1   THEN       
  12.   
  13.       
  14.   
  15.   dw_1.saveas( ls_docname,Excel8!,true)  
  16.   
  17.   
  18.   
  19.   OLEObject   ole_obj,   ole_book     
  20.   
  21.   ole_obj   =   CREATE   OLEObject     
  22.   
  23.   IF   ole_obj.ConnectToNewObject("excel.application")   <>   0   THEN     
  24.   
  25.   MessageBox('OLE錯誤',   'OLE無法連接!')     
  26.   
  27.   destroy   ole_obj     
  28.   
  29.   else     
  30.   
  31.   ole_obj.visible   =  false     
  32.   
  33.   ole_obj.Application.Workbooks.Open(ls_docname)     
  34.   
  35.   ole_book   =   ole_obj.Worksheets(1)     
  36.   
  37.   ole_obj.ActiveSheet.Columns(1).AutoFit   
  38.   
  39.   ole_obj.ActiveSheet.Columns(2).AutoFit  
  40.   
  41.     
  42.   
  43.   int li_count  
  44.   
  45.   string ls_colname,ls_colcount  
  46.   
  47.   ls_colcount   =   dw_1.Describe("DataWindow.Column.Count")   //   取得列總數     
  48.   
  49.   for     li_count   =   1   to   integer(ls_colcount)     
  50.   
  51.             ls_colname   =   dw_1.Describe("#"+string(li_count)+".name")     
  52.   
  53.             ole_book.cells(1,li_count).value   =   dw_1.describe(ls_colname   +   "_t.text")     
  54.   
  55.   next     
  56.   
  57.     
  58.   
  59.   if ddlb_1.text="成品部門"  or  ddlb_1.text="區域"  then  
  60.   
  61.   //計算小計  
  62.   
  63.     ole_book.cells(1,li_count+1).value="小計"  
  64.   
  65.       
  66.   
  67.     int i  
  68.   
  69.     for i=2 to dw_1.rowcount( )+1  
  70.   
  71.         ole_book.cells(i,li_count+1).value="=SUM(D"+string(i)+":"+string(char(64+li_count))+string(i)+")"  
  72.   
  73.     next  
  74.   
  75.       
  76.   
  77.     //計算合計  
  78.   
  79.     ole_book.cells(dw_1.rowcount( )+2,1).value="合計"  
  80.   
  81.     ole_book.cells(dw_1.rowcount( )+2,1).Font.Name="黑體"  
  82.   
  83.     ole_book.cells(dw_1.rowcount( )+2,1).Font.Bold=true  
  84.   
  85.     int j  
  86.   
  87.     for j=4 to li_count+1  
  88.   
  89.         ole_book.cells(dw_1.rowcount( )+2,j).value="=SUM("+string(char(64+j))+"2:"+string(char(64+j))+string(dw_1.rowcount( )+1)+")"  
  90.   
  91.         ole_book.cells(dw_1.rowcount( )+2,j).Font.Name="黑體"  
  92.   
  93.         ole_book.cells(dw_1.rowcount( )+2,j).Font.Bold=true  
  94.   
  95.     next  
  96.   
  97. end if  
  98.   
  99.       
  100.   
  101.   //不顯示保存提示  
  102.   
  103.   ole_obj.Application.DisplayAlerts   =   False    
  104.   
  105.     //保存EXCEL  
  106.   
  107.   ole_obj.ActiveWorkbook.Save   
  108.   
  109.   
  110.   
  111.  //關閉所有打開的Excel文檔:     
  112.   
  113.   ole_obj.Application.WorkBooks.Close()     
  114.   
  115.   //關閉當前操作的Excel文檔:     
  116.   
  117.   //ole_obj.Application.ActiveWindow.Close()     
  118.   
  119.   //ole_obj.Application.ActiveWorkBook.Close()  
  120.   
  121.     
  122.   
  123.     //銷燬對象  
  124.   
  125.   destroy   ole_book     
  126.   
  127.   destroy   ole_obj   
  128.   
  129.     
  130.   
  131.   end if  
  132.   
  133.     
  134.   
  135.   messagebox("提示","導出EXCEL成功!")  
  136.   
  137.   else     
  138.   
  139.   return     
  140.   
  141.   end   if  
發佈了93 篇原創文章 · 獲贊 9 · 訪問量 26萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章