<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Export Straight Table to Excel - Images issue in QlikView</title>
    <link>https://community.qlik.com/t5/QlikView/Export-Straight-Table-to-Excel-Images-issue/m-p/434855#M1164647</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;use the below macro and follow the instructions which are highlighted in blue color. this will work for any object( straight table). &lt;/P&gt;&lt;P&gt;Note: it works only in IE plug in mode.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 9.0pt; font-family: 'Courier New'; color: black;"&gt;'// ****************************************************************&lt;BR /&gt; '// Simple Export of just one object&lt;BR /&gt; '// ****************************************************************&lt;BR /&gt; sub exportToExcel_Variant1&lt;BR /&gt; &lt;BR /&gt; '// Array for export definitions&lt;BR /&gt; Dim aryExport(0,3)&lt;BR /&gt; &lt;BR /&gt; &lt;BR /&gt; aryExport(0,0) = "LineList"&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt; aryExport(0,1) = "Line List" &lt;BR /&gt; aryExport(0,2) = "A1"&lt;BR /&gt; aryExport(0,3) = "data"&lt;BR /&gt; &lt;BR /&gt; Dim objExcelWorkbook&amp;nbsp; 'as Excel.Workbook&lt;BR /&gt; Set objExcelWorkbook = copyObjectsToExcelSheet(ActiveDocument, aryExport)&lt;BR /&gt; &lt;BR /&gt; '// Now either just leave Excel open or do some other stuff here&lt;BR /&gt; '// like saving the excel, some formatting stuff, ...&lt;BR /&gt; &lt;BR /&gt; &lt;BR /&gt; &lt;BR /&gt; end sub&lt;BR /&gt; &lt;BR /&gt; '// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!&lt;BR /&gt; '// YOU DO NOT NEED TO CHANGE THE CODE BELOW !!!!!!!!!!!!!!!!!!!!!!!&lt;BR /&gt; '// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!&lt;BR /&gt; &lt;BR /&gt; &lt;BR /&gt; '// ****************************************************************&lt;BR /&gt; '// copyObjectsToExcel&lt;BR /&gt; '// ~~&lt;BR /&gt; '// Parameters:&lt;BR /&gt; '//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; qvDoc - Reference to the QlikView document (normally just use&lt;BR /&gt; '// "ActiveDocument", but you can also use copyObjectsToExcel&lt;BR /&gt; '// outside of QlikView ...&lt;BR /&gt; '// aryExportDefinition - array of settings&lt;BR /&gt; '// ~~&lt;BR /&gt; '// Version 1.02&lt;BR /&gt; '// ~~&lt;BR /&gt; '// The aryExportDefinition is used to pass the following properties to &lt;BR /&gt; '// copyObjectsToExcelSheet:&lt;BR /&gt; '//&lt;BR /&gt; &lt;SPAN style="color: #3366ff;"&gt;'//&amp;nbsp;&amp;nbsp; Index Description&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #3366ff;"&gt; '// ------------------------&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #3366ff;"&gt; '//&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Id of the QlikView object to copy from&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #3366ff;"&gt; '//&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; - Name of the sheet (in Excel) where the object should be copied to&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #3366ff;"&gt; '//&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #3366ff;"&gt; '// (If a sheet with the same name already exists no new &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #3366ff;"&gt; '//&amp;nbsp; sheet will be created, instead the existing sheet will &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #3366ff;"&gt; '// be used for pasting the object)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #3366ff;"&gt; '//&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #3366ff;"&gt; '// Note: the sheetName can be max 31 characters long&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #3366ff;"&gt; '// &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #3366ff;"&gt; '// 2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Range in Excel where the object should be pasted to&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #3366ff;"&gt; '// 3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PasteMode ["data", "image"]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #3366ff;"&gt; '// Defines if the objects underlaying data should be &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #3366ff;"&gt; '// pasted ("data") or the the image representing the object&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #3366ff;"&gt; '// should be used&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #3366ff;"&gt; '// ****************************************************************&lt;/SPAN&gt;&lt;BR /&gt; Private Function copyObjectsToExcelSheet(qvDoc, aryExportDefinition) 'as Excel.Workbook&lt;BR /&gt; &lt;BR /&gt; &lt;BR /&gt; Dim i 'as Integer&lt;BR /&gt; Dim objExcelApp 'as Excel.Application&lt;BR /&gt; Dim objExcelDoc 'as Excel.Workbook&lt;BR /&gt; &lt;BR /&gt; Set objExcelApp = CreateObject("Excel.Application")&lt;BR /&gt; &lt;BR /&gt; objExcelApp.Visible = true 'false if you want to hide Excel&lt;BR /&gt; objExcelApp.DisplayAlerts = false&lt;BR /&gt; &lt;BR /&gt; Set objExcelDoc = objExcelApp.Workbooks.Add&lt;BR /&gt; &lt;BR /&gt; Dim strSourceObject&lt;BR /&gt; &lt;BR /&gt; Dim qvObjectId 'as String &lt;BR /&gt; Dim sheetName&lt;BR /&gt; Dim sheetRange&lt;BR /&gt; Dim pasteMode&lt;BR /&gt; Dim objSource&lt;BR /&gt; Dim objCurrentSheet&lt;BR /&gt; Dim objExcelSheet&lt;BR /&gt; &lt;BR /&gt; &lt;BR /&gt; &lt;BR /&gt; for i = 0 to UBOUND(aryExportDefinition)&lt;BR /&gt; &lt;BR /&gt; '// Get the properties of the exportDefinition array&lt;BR /&gt; qvObjectId = aryExportDefinition(i,0)&lt;BR /&gt; sheetName = aryExportDefinition(i,1)&lt;BR /&gt; sheetRange = aryExportDefinition(i,2)&lt;BR /&gt; pasteMode = aryExportDefinition(i,3)&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt; Set objExcelSheet = Excel_GetSheetByName(objExcelDoc, sheetName)&lt;BR /&gt; if (objExcelSheet is nothing) then&lt;BR /&gt;&amp;nbsp; Set objExcelSheet = Excel_AddSheet(objExcelApp, sheetName)&lt;BR /&gt;&amp;nbsp; if (objExcelSheet is nothing) then&lt;BR /&gt;&amp;nbsp; msgbox("No sheet could be created, this should not occur!!!")&lt;BR /&gt;&amp;nbsp; end if&lt;BR /&gt; end if&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt; objExcelSheet.Select &lt;BR /&gt; &lt;BR /&gt; set objSource = qvDoc.GetSheetObject(qvObjectId)&lt;BR /&gt; Call objSource.GetSheet().Activate()&lt;BR /&gt; objSource.Maximize&lt;BR /&gt; qvDoc.GetApplication.WaitForIdle&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; &lt;BR /&gt; if (not objSource is nothing) then&lt;BR /&gt; &lt;BR /&gt;&amp;nbsp; if (pasteMode = "image") then&lt;BR /&gt;&amp;nbsp; Call objSource.CopyBitmapToClipboard()&lt;BR /&gt;&amp;nbsp; else&lt;BR /&gt;&amp;nbsp; Call objSource.CopyTableToClipboard(true) '// default &amp;amp; fallback&lt;BR /&gt;&amp;nbsp; end if&lt;BR /&gt; &lt;BR /&gt;&amp;nbsp; Set objCurrentSheet = objExcelDoc.Sheets(sheetName)&lt;BR /&gt;&amp;nbsp; objExcelDoc.Sheets(sheetName).Range(sheetRange).Select&lt;BR /&gt;&amp;nbsp; objExcelDoc.Sheets(sheetName).Paste&lt;BR /&gt; &lt;BR /&gt; if (pasteMode &amp;lt;&amp;gt; "image") then&lt;BR /&gt;&amp;nbsp; With objExcelApp.Selection&lt;BR /&gt; .WrapText = False&lt;BR /&gt; .ShrinkToFit = False&lt;BR /&gt;&amp;nbsp; End With &lt;BR /&gt;&amp;nbsp; end if&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt; &lt;BR /&gt;&amp;nbsp; objCurrentSheet.Range("A1").Select&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt; end if&lt;BR /&gt; &lt;BR /&gt;&amp;nbsp; &lt;BR /&gt; &lt;BR /&gt; next&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt; &lt;BR /&gt; Call Excel_DeleteBlankSheets(objExcelDoc)&lt;BR /&gt; &lt;BR /&gt; '// Finally select the first sheet&lt;BR /&gt; objExcelDoc.Sheets(1).Select&lt;BR /&gt; &lt;BR /&gt; '// Return value&lt;BR /&gt; Set copyObjectsToExcelSheet = objExcelDoc&lt;BR /&gt; &lt;BR /&gt; end function&lt;BR /&gt; '// ________________________________________________________________&lt;BR /&gt; &lt;BR /&gt; &lt;BR /&gt; &lt;BR /&gt; '// ****************************************************************&lt;BR /&gt; '// Internal function for getting the Excel sheet by sheetName&lt;BR /&gt; '// ****************************************************************&lt;BR /&gt; Private Function Excel_GetSheetByName(ByRef objExcelDoc, sheetName) 'as Excel.Sheet&lt;BR /&gt; &lt;BR /&gt; For Each ws In objExcelDoc.Worksheets&lt;BR /&gt; If (trim(ws.Name) = Excel_GetSafeSheetName(sheetName)) then&lt;BR /&gt;&amp;nbsp; Set Excel_GetSheetByName = ws&lt;BR /&gt;&amp;nbsp; exit function&lt;BR /&gt; End If&lt;BR /&gt; Next&lt;BR /&gt; &lt;BR /&gt; '// default return value&lt;BR /&gt; Set Excel_GetSheetByName = nothing&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt; End Function&lt;BR /&gt; '// ________________________________________________________________&lt;BR /&gt; &lt;BR /&gt; &lt;BR /&gt; Private Function Excel_GetSafeSheetName(sheetName)&lt;BR /&gt; &lt;BR /&gt; '// can be max 31 characters long&lt;BR /&gt; retVal = trim(left(sheetName, 31))&lt;BR /&gt; &lt;BR /&gt; Excel_GetSafeSheetName = retVal&lt;BR /&gt; End Function&lt;BR /&gt; &lt;BR /&gt; &lt;BR /&gt; &lt;BR /&gt; '// ****************************************************************&lt;BR /&gt; '// Internal function for adding a new sheet&lt;BR /&gt; '// ****************************************************************&lt;BR /&gt; Private Function Excel_AddSheet(objExcelApplication, sheetName) ' as Excel.Sheet&lt;BR /&gt; &lt;BR /&gt; '// add a sheet to the last position&lt;BR /&gt; objExcelApplication.Sheets.Add , objExcelApplication.Sheets(objExcelApplication.Sheets.Count)&lt;BR /&gt; &lt;BR /&gt; Dim objNewSheet&lt;BR /&gt; Set objNewSheet = objExcelApplication.Sheets(objExcelApplication.Sheets.Count)&lt;BR /&gt; objNewSheet.Name = left(sheetName,31)&lt;BR /&gt; &lt;BR /&gt; '// return the newly created sheet&lt;BR /&gt; Set Excel_AddSheet = objNewSheet&lt;BR /&gt; &lt;BR /&gt; End function&lt;BR /&gt; '// ________________________________________________________________&lt;BR /&gt; &lt;BR /&gt; &lt;BR /&gt; &lt;BR /&gt; '// ****************************************************************&lt;BR /&gt; '// Delete all empty sheets&lt;BR /&gt; '// ****************************************************************&lt;BR /&gt; Private Sub Excel_DeleteBlankSheets(ByRef objExcelDoc) &lt;BR /&gt; &lt;BR /&gt; For Each ws In objExcelDoc.Worksheets&lt;BR /&gt; If (not HasOtherObjects(ws)) then&lt;BR /&gt;&amp;nbsp; If objExcelDoc.Application.WorksheetFunction.CountA(ws.Cells) = 0 Then&lt;BR /&gt;&amp;nbsp; On Error Resume Next&lt;BR /&gt;&amp;nbsp; Call ws.Delete()&lt;BR /&gt;&amp;nbsp; End If&lt;BR /&gt; End If&lt;BR /&gt; Next &lt;BR /&gt; &lt;BR /&gt; End Sub &lt;BR /&gt; '// ________________________________________________________________&lt;BR /&gt; &lt;BR /&gt; '// ****************************************************************&lt;BR /&gt; '// Helper function to determine if there are other objects placed&lt;BR /&gt; '// on the sheet ...&lt;BR /&gt; '// ****************************************************************&lt;BR /&gt; Public Function HasOtherObjects(ByRef objSheet) 'As Boolean &lt;BR /&gt; Dim c&lt;BR /&gt; If (objSheet.ChartObjects.Count &amp;gt; 0) Then&lt;BR /&gt; HasOtherObjects = true&lt;BR /&gt; Exit function&lt;BR /&gt; End If&lt;BR /&gt; If (objSheet.Pictures.Count &amp;gt; 0) Then&lt;BR /&gt; HasOtherObjects = true&lt;BR /&gt; Exit function&lt;BR /&gt; End If&lt;BR /&gt; If (objSheet.Shapes.Count &amp;gt; 0) Then&lt;BR /&gt; HasOtherObjects = true&lt;BR /&gt; Exit function&lt;BR /&gt; End If&lt;BR /&gt; &lt;BR /&gt; &lt;BR /&gt; HasOtherObjects = false&lt;BR /&gt; End Function &lt;BR /&gt; '//__________________________________________________________________&lt;BR /&gt; &lt;BR /&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 25 Sep 2012 14:27:31 GMT</pubDate>
    <dc:creator>Anonymous</dc:creator>
    <dc:date>2012-09-25T14:27:31Z</dc:date>
    <item>
      <title>Export Straight Table to Excel - Images issue</title>
      <link>https://community.qlik.com/t5/QlikView/Export-Straight-Table-to-Excel-Images-issue/m-p/434852#M1164644</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;When I'm exporting a straight table chart to excel from QlikView, I lose any icons I've used. For example, the following line produces an empty box in the table:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if([Spreadsheet.Start Date]&amp;gt;today()or isnull([Spreadsheet.Start Date]),'D:\QlikView Documents\Icons\cross.png','D:\QlikView Documents\Icons\tick.png')&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Is there anyway of using some text instead of an image on export of a table, something like if(IsExport(),'Yes','...tick.png') or is that impossible? Any advice is appreciated, as always.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 24 Sep 2012 13:50:50 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/Export-Straight-Table-to-Excel-Images-issue/m-p/434852#M1164644</guid>
      <dc:creator />
      <dc:date>2012-09-24T13:50:50Z</dc:date>
    </item>
    <item>
      <title>Re: Export Straight Table to Excel - Images issue</title>
      <link>https://community.qlik.com/t5/QlikView/Export-Straight-Table-to-Excel-Images-issue/m-p/434853#M1164645</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;if you want the images to be exported as well you can achieve only by using the macros. &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 24 Sep 2012 19:49:40 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/Export-Straight-Table-to-Excel-Images-issue/m-p/434853#M1164645</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2012-09-24T19:49:40Z</dc:date>
    </item>
    <item>
      <title>Re: Export Straight Table to Excel - Images issue</title>
      <link>https://community.qlik.com/t5/QlikView/Export-Straight-Table-to-Excel-Images-issue/m-p/434854#M1164646</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Ah thanks. Any tips on how to get started with this? I'm having a look over the technical documentation now but if there's a good starting point, that'd be appreciated.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 25 Sep 2012 08:29:06 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/Export-Straight-Table-to-Excel-Images-issue/m-p/434854#M1164646</guid>
      <dc:creator />
      <dc:date>2012-09-25T08:29:06Z</dc:date>
    </item>
    <item>
      <title>Re: Export Straight Table to Excel - Images issue</title>
      <link>https://community.qlik.com/t5/QlikView/Export-Straight-Table-to-Excel-Images-issue/m-p/434855#M1164647</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;use the below macro and follow the instructions which are highlighted in blue color. this will work for any object( straight table). &lt;/P&gt;&lt;P&gt;Note: it works only in IE plug in mode.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 9.0pt; font-family: 'Courier New'; color: black;"&gt;'// ****************************************************************&lt;BR /&gt; '// Simple Export of just one object&lt;BR /&gt; '// ****************************************************************&lt;BR /&gt; sub exportToExcel_Variant1&lt;BR /&gt; &lt;BR /&gt; '// Array for export definitions&lt;BR /&gt; Dim aryExport(0,3)&lt;BR /&gt; &lt;BR /&gt; &lt;BR /&gt; aryExport(0,0) = "LineList"&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt; aryExport(0,1) = "Line List" &lt;BR /&gt; aryExport(0,2) = "A1"&lt;BR /&gt; aryExport(0,3) = "data"&lt;BR /&gt; &lt;BR /&gt; Dim objExcelWorkbook&amp;nbsp; 'as Excel.Workbook&lt;BR /&gt; Set objExcelWorkbook = copyObjectsToExcelSheet(ActiveDocument, aryExport)&lt;BR /&gt; &lt;BR /&gt; '// Now either just leave Excel open or do some other stuff here&lt;BR /&gt; '// like saving the excel, some formatting stuff, ...&lt;BR /&gt; &lt;BR /&gt; &lt;BR /&gt; &lt;BR /&gt; end sub&lt;BR /&gt; &lt;BR /&gt; '// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!&lt;BR /&gt; '// YOU DO NOT NEED TO CHANGE THE CODE BELOW !!!!!!!!!!!!!!!!!!!!!!!&lt;BR /&gt; '// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!&lt;BR /&gt; &lt;BR /&gt; &lt;BR /&gt; '// ****************************************************************&lt;BR /&gt; '// copyObjectsToExcel&lt;BR /&gt; '// ~~&lt;BR /&gt; '// Parameters:&lt;BR /&gt; '//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; qvDoc - Reference to the QlikView document (normally just use&lt;BR /&gt; '// "ActiveDocument", but you can also use copyObjectsToExcel&lt;BR /&gt; '// outside of QlikView ...&lt;BR /&gt; '// aryExportDefinition - array of settings&lt;BR /&gt; '// ~~&lt;BR /&gt; '// Version 1.02&lt;BR /&gt; '// ~~&lt;BR /&gt; '// The aryExportDefinition is used to pass the following properties to &lt;BR /&gt; '// copyObjectsToExcelSheet:&lt;BR /&gt; '//&lt;BR /&gt; &lt;SPAN style="color: #3366ff;"&gt;'//&amp;nbsp;&amp;nbsp; Index Description&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #3366ff;"&gt; '// ------------------------&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #3366ff;"&gt; '//&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Id of the QlikView object to copy from&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #3366ff;"&gt; '//&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; - Name of the sheet (in Excel) where the object should be copied to&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #3366ff;"&gt; '//&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #3366ff;"&gt; '// (If a sheet with the same name already exists no new &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #3366ff;"&gt; '//&amp;nbsp; sheet will be created, instead the existing sheet will &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #3366ff;"&gt; '// be used for pasting the object)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #3366ff;"&gt; '//&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #3366ff;"&gt; '// Note: the sheetName can be max 31 characters long&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #3366ff;"&gt; '// &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #3366ff;"&gt; '// 2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Range in Excel where the object should be pasted to&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #3366ff;"&gt; '// 3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PasteMode ["data", "image"]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #3366ff;"&gt; '// Defines if the objects underlaying data should be &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #3366ff;"&gt; '// pasted ("data") or the the image representing the object&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #3366ff;"&gt; '// should be used&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #3366ff;"&gt; '// ****************************************************************&lt;/SPAN&gt;&lt;BR /&gt; Private Function copyObjectsToExcelSheet(qvDoc, aryExportDefinition) 'as Excel.Workbook&lt;BR /&gt; &lt;BR /&gt; &lt;BR /&gt; Dim i 'as Integer&lt;BR /&gt; Dim objExcelApp 'as Excel.Application&lt;BR /&gt; Dim objExcelDoc 'as Excel.Workbook&lt;BR /&gt; &lt;BR /&gt; Set objExcelApp = CreateObject("Excel.Application")&lt;BR /&gt; &lt;BR /&gt; objExcelApp.Visible = true 'false if you want to hide Excel&lt;BR /&gt; objExcelApp.DisplayAlerts = false&lt;BR /&gt; &lt;BR /&gt; Set objExcelDoc = objExcelApp.Workbooks.Add&lt;BR /&gt; &lt;BR /&gt; Dim strSourceObject&lt;BR /&gt; &lt;BR /&gt; Dim qvObjectId 'as String &lt;BR /&gt; Dim sheetName&lt;BR /&gt; Dim sheetRange&lt;BR /&gt; Dim pasteMode&lt;BR /&gt; Dim objSource&lt;BR /&gt; Dim objCurrentSheet&lt;BR /&gt; Dim objExcelSheet&lt;BR /&gt; &lt;BR /&gt; &lt;BR /&gt; &lt;BR /&gt; for i = 0 to UBOUND(aryExportDefinition)&lt;BR /&gt; &lt;BR /&gt; '// Get the properties of the exportDefinition array&lt;BR /&gt; qvObjectId = aryExportDefinition(i,0)&lt;BR /&gt; sheetName = aryExportDefinition(i,1)&lt;BR /&gt; sheetRange = aryExportDefinition(i,2)&lt;BR /&gt; pasteMode = aryExportDefinition(i,3)&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt; Set objExcelSheet = Excel_GetSheetByName(objExcelDoc, sheetName)&lt;BR /&gt; if (objExcelSheet is nothing) then&lt;BR /&gt;&amp;nbsp; Set objExcelSheet = Excel_AddSheet(objExcelApp, sheetName)&lt;BR /&gt;&amp;nbsp; if (objExcelSheet is nothing) then&lt;BR /&gt;&amp;nbsp; msgbox("No sheet could be created, this should not occur!!!")&lt;BR /&gt;&amp;nbsp; end if&lt;BR /&gt; end if&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt; objExcelSheet.Select &lt;BR /&gt; &lt;BR /&gt; set objSource = qvDoc.GetSheetObject(qvObjectId)&lt;BR /&gt; Call objSource.GetSheet().Activate()&lt;BR /&gt; objSource.Maximize&lt;BR /&gt; qvDoc.GetApplication.WaitForIdle&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; &lt;BR /&gt; if (not objSource is nothing) then&lt;BR /&gt; &lt;BR /&gt;&amp;nbsp; if (pasteMode = "image") then&lt;BR /&gt;&amp;nbsp; Call objSource.CopyBitmapToClipboard()&lt;BR /&gt;&amp;nbsp; else&lt;BR /&gt;&amp;nbsp; Call objSource.CopyTableToClipboard(true) '// default &amp;amp; fallback&lt;BR /&gt;&amp;nbsp; end if&lt;BR /&gt; &lt;BR /&gt;&amp;nbsp; Set objCurrentSheet = objExcelDoc.Sheets(sheetName)&lt;BR /&gt;&amp;nbsp; objExcelDoc.Sheets(sheetName).Range(sheetRange).Select&lt;BR /&gt;&amp;nbsp; objExcelDoc.Sheets(sheetName).Paste&lt;BR /&gt; &lt;BR /&gt; if (pasteMode &amp;lt;&amp;gt; "image") then&lt;BR /&gt;&amp;nbsp; With objExcelApp.Selection&lt;BR /&gt; .WrapText = False&lt;BR /&gt; .ShrinkToFit = False&lt;BR /&gt;&amp;nbsp; End With &lt;BR /&gt;&amp;nbsp; end if&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt; &lt;BR /&gt;&amp;nbsp; objCurrentSheet.Range("A1").Select&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt; end if&lt;BR /&gt; &lt;BR /&gt;&amp;nbsp; &lt;BR /&gt; &lt;BR /&gt; next&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt; &lt;BR /&gt; Call Excel_DeleteBlankSheets(objExcelDoc)&lt;BR /&gt; &lt;BR /&gt; '// Finally select the first sheet&lt;BR /&gt; objExcelDoc.Sheets(1).Select&lt;BR /&gt; &lt;BR /&gt; '// Return value&lt;BR /&gt; Set copyObjectsToExcelSheet = objExcelDoc&lt;BR /&gt; &lt;BR /&gt; end function&lt;BR /&gt; '// ________________________________________________________________&lt;BR /&gt; &lt;BR /&gt; &lt;BR /&gt; &lt;BR /&gt; '// ****************************************************************&lt;BR /&gt; '// Internal function for getting the Excel sheet by sheetName&lt;BR /&gt; '// ****************************************************************&lt;BR /&gt; Private Function Excel_GetSheetByName(ByRef objExcelDoc, sheetName) 'as Excel.Sheet&lt;BR /&gt; &lt;BR /&gt; For Each ws In objExcelDoc.Worksheets&lt;BR /&gt; If (trim(ws.Name) = Excel_GetSafeSheetName(sheetName)) then&lt;BR /&gt;&amp;nbsp; Set Excel_GetSheetByName = ws&lt;BR /&gt;&amp;nbsp; exit function&lt;BR /&gt; End If&lt;BR /&gt; Next&lt;BR /&gt; &lt;BR /&gt; '// default return value&lt;BR /&gt; Set Excel_GetSheetByName = nothing&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt; End Function&lt;BR /&gt; '// ________________________________________________________________&lt;BR /&gt; &lt;BR /&gt; &lt;BR /&gt; Private Function Excel_GetSafeSheetName(sheetName)&lt;BR /&gt; &lt;BR /&gt; '// can be max 31 characters long&lt;BR /&gt; retVal = trim(left(sheetName, 31))&lt;BR /&gt; &lt;BR /&gt; Excel_GetSafeSheetName = retVal&lt;BR /&gt; End Function&lt;BR /&gt; &lt;BR /&gt; &lt;BR /&gt; &lt;BR /&gt; '// ****************************************************************&lt;BR /&gt; '// Internal function for adding a new sheet&lt;BR /&gt; '// ****************************************************************&lt;BR /&gt; Private Function Excel_AddSheet(objExcelApplication, sheetName) ' as Excel.Sheet&lt;BR /&gt; &lt;BR /&gt; '// add a sheet to the last position&lt;BR /&gt; objExcelApplication.Sheets.Add , objExcelApplication.Sheets(objExcelApplication.Sheets.Count)&lt;BR /&gt; &lt;BR /&gt; Dim objNewSheet&lt;BR /&gt; Set objNewSheet = objExcelApplication.Sheets(objExcelApplication.Sheets.Count)&lt;BR /&gt; objNewSheet.Name = left(sheetName,31)&lt;BR /&gt; &lt;BR /&gt; '// return the newly created sheet&lt;BR /&gt; Set Excel_AddSheet = objNewSheet&lt;BR /&gt; &lt;BR /&gt; End function&lt;BR /&gt; '// ________________________________________________________________&lt;BR /&gt; &lt;BR /&gt; &lt;BR /&gt; &lt;BR /&gt; '// ****************************************************************&lt;BR /&gt; '// Delete all empty sheets&lt;BR /&gt; '// ****************************************************************&lt;BR /&gt; Private Sub Excel_DeleteBlankSheets(ByRef objExcelDoc) &lt;BR /&gt; &lt;BR /&gt; For Each ws In objExcelDoc.Worksheets&lt;BR /&gt; If (not HasOtherObjects(ws)) then&lt;BR /&gt;&amp;nbsp; If objExcelDoc.Application.WorksheetFunction.CountA(ws.Cells) = 0 Then&lt;BR /&gt;&amp;nbsp; On Error Resume Next&lt;BR /&gt;&amp;nbsp; Call ws.Delete()&lt;BR /&gt;&amp;nbsp; End If&lt;BR /&gt; End If&lt;BR /&gt; Next &lt;BR /&gt; &lt;BR /&gt; End Sub &lt;BR /&gt; '// ________________________________________________________________&lt;BR /&gt; &lt;BR /&gt; '// ****************************************************************&lt;BR /&gt; '// Helper function to determine if there are other objects placed&lt;BR /&gt; '// on the sheet ...&lt;BR /&gt; '// ****************************************************************&lt;BR /&gt; Public Function HasOtherObjects(ByRef objSheet) 'As Boolean &lt;BR /&gt; Dim c&lt;BR /&gt; If (objSheet.ChartObjects.Count &amp;gt; 0) Then&lt;BR /&gt; HasOtherObjects = true&lt;BR /&gt; Exit function&lt;BR /&gt; End If&lt;BR /&gt; If (objSheet.Pictures.Count &amp;gt; 0) Then&lt;BR /&gt; HasOtherObjects = true&lt;BR /&gt; Exit function&lt;BR /&gt; End If&lt;BR /&gt; If (objSheet.Shapes.Count &amp;gt; 0) Then&lt;BR /&gt; HasOtherObjects = true&lt;BR /&gt; Exit function&lt;BR /&gt; End If&lt;BR /&gt; &lt;BR /&gt; &lt;BR /&gt; HasOtherObjects = false&lt;BR /&gt; End Function &lt;BR /&gt; '//__________________________________________________________________&lt;BR /&gt; &lt;BR /&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 25 Sep 2012 14:27:31 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/Export-Straight-Table-to-Excel-Images-issue/m-p/434855#M1164647</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2012-09-25T14:27:31Z</dc:date>
    </item>
    <item>
      <title>Re: Export Straight Table to Excel - Images issue</title>
      <link>https://community.qlik.com/t5/QlikView/Export-Straight-Table-to-Excel-Images-issue/m-p/434856#M1164648</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;HI Vinay,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; I saw you posted the macro code to export images in a straight table to excel. I have a report with images (i used info() to get external images). I tried your code , but it did not work. Do I need to modify the code somewhere? Or could you post a sample? it will be easy to understand. Thanks.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;H6&gt;&lt;STRONG&gt;&amp;nbsp; &lt;BR /&gt;&lt;/STRONG&gt;&lt;/H6&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 04 Feb 2014 17:12:54 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/Export-Straight-Table-to-Excel-Images-issue/m-p/434856#M1164648</guid>
      <dc:creator>newhere2014</dc:creator>
      <dc:date>2014-02-04T17:12:54Z</dc:date>
    </item>
    <item>
      <title>Re: Export Straight Table to Excel - Images issue</title>
      <link>https://community.qlik.com/t5/QlikView/Export-Straight-Table-to-Excel-Images-issue/m-p/434857#M1164649</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have the same issue but in AJAX so I can't use Macros. Is there any workaround to do that?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Ariel&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 22 Apr 2015 18:11:56 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/Export-Straight-Table-to-Excel-Images-issue/m-p/434857#M1164649</guid>
      <dc:creator>arieidel</dc:creator>
      <dc:date>2015-04-22T18:11:56Z</dc:date>
    </item>
  </channel>
</rss>

