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