Skip to main content
Announcements
Qlik Connect 2024! Seize endless possibilities! LEARN MORE
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