Do not input private or sensitive data. View Qlik Privacy & Cookie Policy.
Skip to main content

Announcements
Qlik Open Lakehouse is Now Generally Available! Discover the key highlights and partner resources here.
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Export QlikView Object in Excel

I have to export an Object with ID LB04 in excel when one presses a button. I tried this VBscript:

sub excelExport

set XLApp = CreateObject("Excel.Application")

XLApp.Visible = FALSE

set XLDoc = XLApp.Workbooks.Add

XLDoc.Sheets(1).name = "Supervisor Report"

set XLSheet = XLDoc.Worksheets(1)

set MyTable = ActiveDocument.GetSheetObject("LB04")

set XLSheet = XLDoc.Worksheets(1)

MyTable.CopyTableToClipboard true

XLSheet.Paste XLSheet.Range("A1")

XLDoc.SaveAs "C:\path\to\my\folder\BI\data.xlsx"   

XLApp.Visible = False

XLApp.Quit

Set XLApp = Nothing

Set Table = Nothing

end sub

It does not work. How can I solve?

1 Reply
vinafidalgo
Partner - Creator
Partner - Creator

Try to use this function:

  1. Sub Test 
  2.    ExcelAppend "h:\test.xlsx", "CH01" 
  3. End Sub 
  4. Sub ExcelAppend(strExcelAppenFile, strExelAppendObjectID) 
  5.    ' Create an instance of Excel 
  6.    SET objExcelApp = CREATEOBJECT("Excel.Application"
  7.     
  8.    ' Open workbook 
  9.    WITH objExcelApp 
  10.       .DefaultSaveFormat = xlWorkbookNormal 
  11.       .DisplayAlerts = FALSE 
  12.       .Workbooks.Open strExcelAppenFile 
  13.       .DisplayFullScreen = FALSE 
  14.       .Visible = FALSE 
  15.    END WITH 
  16.     
  17.    ' Set worksheet 
  18.    SET objExcelSheet = objExcelApp.Worksheets(1) 
  19.        
  20.    ' Set Excel used range 
  21.    SET objExcelRange = objExcelSheet.Range("A65535").End(-4162) 
  22.    ' Last used row in column
  23.    intExcelLastRow = objExcelRange.Row 
  24.    ' Set object to append from 
  25.    SET objObjectFrom = ActiveDocument.GetSheetObject(strExelAppendObjectID) 
  26.    ' Loop all rows of the object except first header row 
  27.    FOR intObjectRow = 1 To objObjectFrom.GetRowCount - 1 
  28.       ' Loop all columns of the object 
  29.       FOR intObjectColumn = 0 To objObjectFrom.GetColumnCount - 1 
  30.          ' Get object data 
  31.          SET objCell = objObjectFrom.GetCell(intObjectRow, intObjectColumn) 
  32.          ' Add that data to Excel cell 
  33.          objExcelSheet.Cells(intObjectRow + intExcelLastRow, intObjectColumn + 1) = objCell.Text 
  34.       NEXT 
  35.    NEXT 
  36.     
  37.    ' Save and quit 
  38.    objExcelSheet.SaveAs strExcelAppenFile 
  39.    objExcelApp.Application.Quit 
  40.    SET objExcelSheet = NOTHING       
  41.    SET objExcelApp = NOTHING 
  42. END SUB