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

댓글 없음:

댓글 쓰기

언제 부터 였던가 생각해보니 아르바이트 겸 외부 컨설팅을 의뢰 받고 맥북 프로를 처음 써봤을 때 부터 였던 것 같다. 지금은 거의 대부분의 작업을 맥으로 작업을 하다 보니 윈도우에서만 실행되는 일부 프로그램들 때문과 회사 내부 ERP프로그램이 윈도우 ...