2012년 6월 15일 금요일

[PowerBuilder] Data Windows to HTML ( save Excel)

String ls_HTML, ls_FileName, ls_Modify, ls_Named, ls_TmpFile
Integer li_FileNumber, li_Return
Long ll_Location
// Don't proceed if there is no data object loaded in the DW
If (dw_1.dataobject = "") Then Return -1
// Generate the HTML
ls_Modify += "DataWindow.HTMLTable.Border=1  "
If Trim(ls_Modify) <> "" Then
 dw_1.Modify(ls_Modify)
End If

ls_HTML = dw_1.Object.DataWindow.Data.HTMLTable
If IsNull(ls_HTML) Or Len(ls_HTML) <= 1 Then
 MessageBox ("Error", "Error generating HTML table.", Exclamation!)
 Return -1
End If
OLEObject EXCEL
EXCEL = CREATE OLEObject
EXCEL.ConnectToNewObject("Excel.Application")
// 저장 위치
li_Return = GetFileSaveName( "Save File", ls_FileName, ls_Named, "xls" , "All Files (*.*),*.*" )
IF li_Return <> 1 THEN
 MessageBox("확인", "저장할 곳을 선택하십시오.")
 Return -1
END IF
ls_TmpFile = ls_FileName + ".htm"
IF FileExists(ls_TmpFile) THEN FileDelete(ls_TmpFile)
IF FileExists(ls_FileName) THEN FileDelete(ls_FileName)
li_FileNumber = FileOpen(ls_TmpFile, LineMode!, Write!, LockReadWrite!, Append!, EncodingUTF8! )
If (li_FileNumber >= 0) Then
 DO WHILE LenA(ls_HTML) > 10240
  ll_Location = PosA(ls_HTML, '<TR>') + 3
  FileWrite(li_FileNumber, LeftA(ls_HTML, ll_Location))
  ls_HTML = MidA(ls_HTML, ll_Location + 1)
 LOOP

 FileWrite(li_FileNumber, ls_HTML)
 FileClose(li_FileNumber)
Else // File open error
 MessageBox ("FileOpen Error", "Could not open file: " + ls_FileName + " (" + String( li_FileNumber ) + ")")
End If
EXCEL.WorkBooks.Open(ls_TmpFile)
EXCEL.WorkBooks(1).SaveAs(ls_FileName)
EXCEL.WorkBooks(1).Saved = True
EXCEL.Application.Quit
EXCEL.DisConnectObject()
Destroy EXCEL
FileDelete(ls_TmpFile)
Messagebox("완료", "파일이 저장되었습니다.")
Return 1

댓글 없음:

댓글 쓰기

 다양한 채널의  블로그 작성으로  집중이 좀 안되기도 하고  나의 회사를 운영하고 관리 하다 보니  회사의 블로그로 작성 해보는 것은 어떤가 하고  하나로 옮겨 봅니다.  (주)다이닝웨이브 - 블로그 바로가기