Master2 pb sekalian, saya mau bertanya, kenapa bila menggunakan versi pb.11.5
waktu save to excell selalu nambah 1 baris di atas header,kadang2 juga manambah
jumlah kolom, sedangkan bila memakai versi bawaanya yaitu pb.5 tidak mengalami
kendala demikian, ada yang bisa bantu..!
ini contoh scripnya..kira2 ada yang kurang ..
OLEObject oWorkBook
OLEObject oExcel
OLEObject oActiveSheet
OleObject oRange,oRange1,oRange2
Long ll_dwrow,ll_dwcol,ll_dwcolcount,ll_dwrowcount
String ls_columns[],ls_columnname,ls_lastcol
Any lany_value
Integer I,li_rec,li_displaynamestyle_org,li_lastcol
Integer li_maxcols = 256,li_teller
IF (dw_report.SaveAs(pv_filename,HtmlTable!,False)) <= 0 THEN
This.SetMicrohelp("Error while saving to temporary file .....")
RETURN -1
END IF
IF FileExists(is_filenamecomplete) THEN
IF Not FileDelete(is_filenamecomplete) THEN
THIS.SetMicrohelp("Error while deleting Target file ...")
RETURN -1
END IF
END IF
oExcel = CREATE OLEObject
IF oExcel.ConnectToNewObject("Excel.Application") <> 0 THEN
THIS.SetMicrohelp("Error while connecting to Excel ...")
f_error('A',67,'"Could Not Connect To Excel"','','')
RETURN -1
END IF
oExcel.Application.Visible = TRUE
oWorkBook = CREATE OleObject
THIS.SetMicrohelp("Opening Temporary File ...")
oWorkBook = oExcel.Workbooks.OPEN(pv_filename)
THIS.SetMicrohelp("Saving As Excel Workbook ...")
//oWorkBook.SaveAs(is_filenamecomplete,-4143)
oWorkBook.SaveAs(pv_filename,-4143)
FileDelete(pv_filename)
oActiveSheet = CREATE OleObject
oActiveSheet = oWorkBook.ActiveSheet
//oActiveSheet = oWorkBook.Worksheets.Add
THIS.SetMicrohelp("Applying Lay-out ...")
oActiveSheet.Cells.SELECT
oExcel.Selection.MergeCells = FALSE
oExcel.Selection.Wraptext = FALSE
oExcel.Selection.Columns.Autofit()
//oActiveSheet.Rows("1:1").SELECT
oRange = CREATE OleObject
oRange = oExcel.Selection
//oRange.DELETE(-4162)
oRange1 = CREATE OleObject
oRange2 = CREATE OleObject
SetNull(ls_lastcol)
//oExcel.Application.Cells(1,1).value = 24
//FOR I = 255 TO 1 STEP -1
//IF NOT IsNull(oExcel.Application.Cells(1,I).Value) THEN
//ls_lastcol = String(oExcel.ActiveSheet.Cells(1,I).Value)
//EXIT
//END IF
//NEXT
I = 1
DO WHILE TRUE AND NOT IsNull(ls_lastcol) //AND NOT dw_xls.ib_isfreeform
oWorkBook.Save()
li_teller ++
IF li_teller > li_maxcols THEN
EXIT
END IF
// lany_value = oExcel.Cells(1,I).Value
//
// IF IsNull(lany_value) THEN
// oActiveSheet.Cells(1,I).SELECT
// oRange1 = oExcel.Selection
//
// oActiveSheet.Cells(65536,I).SELECT
// oRange2 = oExcel.Selection
//
// oActiveSheet.Range(oRange1,oRange2).SELECT
// oRange = oExcel.Selection
//
// oRange.DELETE
// ELSE
// If String(lany_value) <> ls_lastcol Then
// I = I + 1
// ELSE
// EXIT
// END IF
// END IF
LOOP
oActiveSheet.Cells.Select
oExcel.Selection.Wraptext = False
oExcel.Selection.Columns.Autofit()
oExcel.Selection.Rows.Autofit()
//oActiveSheet.Cells(1,1).Select
oRange1.DisconnectObject()
DESTROY oRange1
oRange2.DisconnectObject()
DESTROY oRange2
oRange.DisconnectObject()
DESTROY oRange
oActiveSheet.DisconnectObject()
DESTROY oActiveSheet
oWorkBook.Save()
oWorkBook.Close(True)
oWorkBook.DisconnectObject()
DESTROY oWorkBook
oExcel.Quit
oExcel.DisConnectObject()
DESTROY oExcel
SetPointer(Arrow!)
THIS.SetMicrohelp("Retrieving, please wait ..!")
RETURN 100