<?xml version="1.0" encoding="utf-8" ?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:tt="http://teletype.in/" xmlns:opensearch="http://a9.com/-/spec/opensearch/1.1/"><title>Qlik Sense Expert</title><subtitle>Qlik Sense Developer</subtitle><author><name>Qlik Sense Expert</name></author><id>https://teletype.in/atom/qliksense</id><link rel="self" type="application/atom+xml" href="https://teletype.in/atom/qliksense?offset=0"></link><link rel="alternate" type="text/html" href="https://teletype.in/@qliksense?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=qliksense"></link><link rel="next" type="application/rss+xml" href="https://teletype.in/atom/qliksense?offset=10"></link><link rel="search" type="application/opensearchdescription+xml" title="Teletype" href="https://teletype.in/opensearch.xml"></link><updated>2026-04-16T21:42:18.597Z</updated><entry><id>qliksense:Transforming-Hypercube-Data-English</id><link rel="alternate" type="text/html" href="https://teletype.in/@qliksense/Transforming-Hypercube-Data-English?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=qliksense"></link><title>Transforming Hypercube Data - English</title><published>2021-08-25T20:02:39.475Z</published><updated>2021-08-25T20:02:39.475Z</updated><category term="qliksense" label="qliksense"></category><summary type="html">&lt;img src=&quot;https://web.archive.org/web/20210825195850/https://i2.wp.com/whereclause.com/wp-content/uploads/2020/03/transforming-hypercube-data-chart.jpg?w=541&amp;ssl=1&quot;&gt;Here are a couple ways to take HyperCube data and transform it into something more useable.</summary><content type="html">
  &lt;p&gt;Here are a couple ways to take HyperCube data and transform it into something more useable.&lt;/p&gt;
  &lt;h2&gt;Example&lt;/h2&gt;
  &lt;h4&gt;Qlik Chart Object&lt;/h4&gt;
  &lt;p&gt;This is a simple chart with two dimensions and one measure.&lt;/p&gt;
  &lt;figure class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://web.archive.org/web/20210825195850/https://i2.wp.com/whereclause.com/wp-content/uploads/2020/03/transforming-hypercube-data-chart.jpg?w=541&amp;ssl=1&quot; width=&quot;541&quot; /&gt;
  &lt;/figure&gt;
  &lt;h4&gt;HyperCube Data Sample&lt;/h4&gt;
  &lt;p&gt;The hypercube is the object behind a Qlik chart object. Here is how the chart data is returned by the &lt;code&gt;&lt;strong&gt;getHyperCubeData&lt;/strong&gt;()&lt;/code&gt; API call.&lt;/p&gt;
  &lt;figure class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://web.archive.org/web/20210825195852/https://i1.wp.com/whereclause.com/wp-content/uploads/2020/03/transforming-hypercube-data-sample.jpg?w=491&amp;ssl=1&quot; width=&quot;491&quot; /&gt;
  &lt;/figure&gt;
  &lt;h4&gt;Row Array&lt;/h4&gt;
  &lt;p&gt;This would create an array for each row, where each value in the list is a column value. This is a simple version of a hypercube data set.&lt;/p&gt;
  &lt;figure class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://web.archive.org/web/20210825195851/https://i2.wp.com/whereclause.com/wp-content/uploads/2020/03/transforming-hypercube-data-row-array.jpg?resize=209%2C164&amp;ssl=1&quot; width=&quot;209&quot; /&gt;
  &lt;/figure&gt;
  &lt;h4&gt;Object&lt;/h4&gt;
  &lt;p&gt;This would create a single object, where the dimension fields are the key. This is in my opinion the easiest to work with.&lt;/p&gt;
  &lt;figure class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://web.archive.org/web/20210825195855/https://i1.wp.com/whereclause.com/wp-content/uploads/2020/03/transforming-hypercube-data-object.jpg?resize=215%2C163&amp;ssl=1&quot; width=&quot;215&quot; /&gt;
  &lt;/figure&gt;
  &lt;h3&gt;Code&lt;/h3&gt;
  &lt;pre&gt;/*
    Example:
    Chart has 3 columns (2 Dims, 1 Msr)
    date_num | dim | msr
    ---------|-----|-----
    43556    | B   | 25
    43556    | C   | 26
    ....
*/

data = 

[
  [
    { qText: &amp;#x27;43556&amp;#x27;, qNum: 43556, qElemNumber: 1, qState: &amp;#x27;O&amp;#x27; },
    { qText: &amp;#x27;B&amp;#x27;, qNum: &amp;#x27;NaN&amp;#x27;, qElemNumber: 1, qState: &amp;#x27;O&amp;#x27; },
    { qText: &amp;#x27;25&amp;#x27;, qNum: 25, qElemNumber: 0, qState: &amp;#x27;L&amp;#x27; }
  ],
  [
    { qText: &amp;#x27;43556&amp;#x27;, qNum: 43556, qElemNumber: 1, qState: &amp;#x27;O&amp;#x27; },
    { qText: &amp;#x27;C&amp;#x27;, qNum: &amp;#x27;NaN&amp;#x27;, qElemNumber: 2, qState: &amp;#x27;O&amp;#x27; },
    { qText: &amp;#x27;26&amp;#x27;, qNum: 26, qElemNumber: 0, qState: &amp;#x27;L&amp;#x27; }
  ],
  [
    { qText: &amp;#x27;43556&amp;#x27;, qNum: 43556, qElemNumber: 1, qState: &amp;#x27;O&amp;#x27; },
    { qText: &amp;#x27;D&amp;#x27;, qNum: &amp;#x27;NaN&amp;#x27;, qElemNumber: 0, qState: &amp;#x27;O&amp;#x27; },
    { qText: &amp;#x27;25&amp;#x27;, qNum: 25, qElemNumber: 0, qState: &amp;#x27;L&amp;#x27; }
  ],
  [
    { qText: &amp;#x27;43586&amp;#x27;, qNum: 43586, qElemNumber: 2, qState: &amp;#x27;O&amp;#x27; },
    { qText: &amp;#x27;C&amp;#x27;, qNum: &amp;#x27;NaN&amp;#x27;, qElemNumber: 2, qState: &amp;#x27;O&amp;#x27; },
    { qText: &amp;#x27;25&amp;#x27;, qNum: 25, qElemNumber: 0, qState: &amp;#x27;L&amp;#x27; }
  ],
  [
    { qText: &amp;#x27;43586&amp;#x27;, qNum: 43586, qElemNumber: 2, qState: &amp;#x27;O&amp;#x27; },
    { qText: &amp;#x27;D&amp;#x27;, qNum: &amp;#x27;NaN&amp;#x27;, qElemNumber: 0, qState: &amp;#x27;O&amp;#x27; },
    { qText: &amp;#x27;26&amp;#x27;, qNum: 26, qElemNumber: 0, qState: &amp;#x27;L&amp;#x27; }
  ],
  [
    { qText: &amp;#x27;43617&amp;#x27;, qNum: 43617, qElemNumber: 0, qState: &amp;#x27;O&amp;#x27; },
    { qText: &amp;#x27;B&amp;#x27;, qNum: &amp;#x27;NaN&amp;#x27;, qElemNumber: 1, qState: &amp;#x27;O&amp;#x27; },
    { qText: &amp;#x27;25&amp;#x27;, qNum: 25, qElemNumber: 0, qState: &amp;#x27;L&amp;#x27; }
  ],
  [
    { qText: &amp;#x27;43617&amp;#x27;, qNum: 43617, qElemNumber: 0, qState: &amp;#x27;O&amp;#x27; },
    { qText: &amp;#x27;C&amp;#x27;, qNum: &amp;#x27;NaN&amp;#x27;, qElemNumber: 2, qState: &amp;#x27;O&amp;#x27; },
    { qText: &amp;#x27;26&amp;#x27;, qNum: 26, qElemNumber: 0, qState: &amp;#x27;L&amp;#x27; }
  ],
  [
    { qText: &amp;#x27;43617&amp;#x27;, qNum: 43617, qElemNumber: 0, qState: &amp;#x27;O&amp;#x27; },
    { qText: &amp;#x27;D&amp;#x27;, qNum: &amp;#x27;NaN&amp;#x27;, qElemNumber: 0, qState: &amp;#x27;O&amp;#x27; },
    { qText: &amp;#x27;26&amp;#x27;, qNum: 26, qElemNumber: 0, qState: &amp;#x27;L&amp;#x27; }
  ]
]
    
const rows = []
const rowObj = {}

for (var r in data) {
   let row = data[r]
    values = []
    v = {}

    for (var c in row) {
        values.push(row[c].qNum== &amp;#x27;NaN&amp;#x27; ? row[c].qText : row[c].qNum)
    }

    // Row Array
    rows.push(values)

    // Single Object with dim values as key
    key = values[0]+&amp;quot;|&amp;quot;+values[1]
    rowObj[key] = values[2]

}

console.log(&amp;#x27;\n&amp;#x27;,&amp;#x27;Row Array:&amp;#x27;, &amp;#x27;\n\n&amp;#x27;, rows,&amp;#x27;\n&amp;#x27;)
console.log(&amp;#x27;Object:&amp;#x27;,&amp;#x27;\n\n&amp;#x27;, rowObj,&amp;#x27;\n&amp;#x27;)&lt;/pre&gt;
  &lt;p&gt;&lt;/p&gt;
  &lt;p&gt;&lt;strong&gt;Initial Article:&lt;/strong&gt; &lt;a href=&quot;https://whereclause.com/article/transforming-hypercube-data/&quot; target=&quot;_blank&quot;&gt;https://whereclause.com/article/transforming-hypercube-data/&lt;/a&gt;&lt;/p&gt;

</content></entry><entry><id>qliksense:Natively-Loading-JSON-English</id><link rel="alternate" type="text/html" href="https://teletype.in/@qliksense/Natively-Loading-JSON-English?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=qliksense"></link><title>Natively Loading JSON - English</title><published>2021-08-25T19:50:43.541Z</published><updated>2021-08-25T19:50:43.541Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img3.teletype.in/files/2f/91/2f91bfd5-762d-4b79-9763-863e44abda68.jpeg"></media:thumbnail><category term="qliksense" label="qliksense"></category><summary type="html">&lt;img src=&quot;https://web.archive.org/web/20210716120725im_/https://i1.wp.com/whereclause.com/wp-content/uploads/2020/06/52-natively-load-json-raw.jpg?w=867&amp;ssl=1&quot;&gt;I want to start this artcile off by mentioning that this only works for flat json, meaning non-nested json hierarchies. It is possible to leverage this for nested json but takes a bit more elbow grease and knowledge of the schema. Since my intention is to keep these posts brief, I’ll save that for a more in-depth stand alone article.</summary><content type="html">
  &lt;p&gt;I want to start this artcile off by mentioning that this only works for flat &lt;code&gt;json&lt;/code&gt;, meaning non-nested json hierarchies. It is possible to leverage this for nested &lt;code&gt;json&lt;/code&gt; but takes a bit more elbow grease and knowledge of the schema. Since my intention is to keep these posts brief, I’ll save that for a more in-depth stand alone article.&lt;/p&gt;
  &lt;p&gt;So getting into it, imagine you have a field with &lt;code&gt;json&lt;/code&gt; values and we want to convert the &lt;code&gt;json&lt;/code&gt; to a table.&lt;/p&gt;
  &lt;figure class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://web.archive.org/web/20210716120725im_/https://i1.wp.com/whereclause.com/wp-content/uploads/2020/06/52-natively-load-json-raw.jpg?w=867&amp;ssl=1&quot; width=&quot;867&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;What we can do is leverage &lt;a href=&quot;https://web.archive.org/web/20210118161418/https://help.qlik.com/en-US/sense/April2020/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Load.htm&quot; target=&quot;_blank&quot;&gt;From_Field&lt;/a&gt; and put &lt;code&gt;json&lt;/code&gt; for our table format.&lt;/p&gt;
  &lt;p&gt;&lt;strong&gt;Script&lt;/strong&gt;&lt;/p&gt;
  &lt;figure class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://web.archive.org/web/20210617053639im_/https://i2.wp.com/whereclause.com/wp-content/uploads/2020/06/52-natively-load-json-script.jpg?w=802&amp;ssl=1&quot; width=&quot;802&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;&lt;strong&gt;Result&lt;/strong&gt;&lt;/p&gt;
  &lt;figure class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://web.archive.org/web/20210716120726im_/https://i0.wp.com/whereclause.com/wp-content/uploads/2020/06/52-natively-load-json-from-field-1.jpg?w=811&amp;ssl=1&quot; width=&quot;811&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;We can also directly load a &lt;code&gt;.json&lt;/code&gt; file as well. Although, for it to to work it can only be a single flat &lt;code&gt;json&lt;/code&gt; structure with no labels or headers.&lt;/p&gt;
  &lt;p&gt;&lt;strong&gt;Example&lt;/strong&gt;&lt;/p&gt;
  &lt;p&gt;&lt;/p&gt;
  &lt;figure class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://web.archive.org/web/20210617053638im_/https://i2.wp.com/whereclause.com/wp-content/uploads/2020/06/52-natively-load-json-single-json.jpg?w=657&amp;ssl=1&quot; width=&quot;657&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;&lt;strong&gt;Script&lt;/strong&gt;&lt;/p&gt;
  &lt;figure class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://web.archive.org/web/20210617053638im_/https://i0.wp.com/whereclause.com/wp-content/uploads/2020/06/52-natively-load-json-single-json-script.jpg?w=650&amp;ssl=1&quot; width=&quot;650&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;&lt;strong&gt;Result&lt;/strong&gt;&lt;/p&gt;
  &lt;figure class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://web.archive.org/web/20210617053659im_/https://i2.wp.com/whereclause.com/wp-content/uploads/2020/06/52-natively-load-json-single-json-1.jpg?w=657&amp;ssl=1&quot; width=&quot;657&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;I find this tip particularly interesting because it isn’t mentioned in Qlik’s documentation. You would expect &lt;code&gt;json&lt;/code&gt; to be one of the options &lt;a href=&quot;https://web.archive.org/web/20210118161418/https://help.qlik.com/en-US/sense/June2020/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptSpecifiers/table-format.htm&quot; target=&quot;_blank&quot;&gt;here&lt;/a&gt;, but it’s not. Gotta love Easter eggs.&lt;/p&gt;
  &lt;p&gt;&lt;strong&gt;Source of Article:&lt;/strong&gt; &lt;a href=&quot;https://whereclause.com/2020/06/23/52-natively-loading-json/&quot; target=&quot;_blank&quot;&gt;https://whereclause.com/2020/06/23/52-natively-loading-json/&lt;/a&gt;&lt;/p&gt;

</content></entry><entry><id>qliksense:set-analysis-case-bug-or-feature</id><link rel="alternate" type="text/html" href="https://teletype.in/@qliksense/set-analysis-case-bug-or-feature?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=qliksense"></link><title>Кейс Set Analysis - Баг или Фича?</title><published>2020-12-30T21:04:50.042Z</published><updated>2020-12-30T21:19:56.607Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://teletype.in/files/af/80/af80c5c2-be9d-4d35-8b56-55a2c6421818.jpeg"></media:thumbnail><category term="qlik" label="qlik"></category><summary type="html">&lt;img src=&quot;https://teletype.in/files/01/0a/010abb90-16a6-4904-8648-8e12ce9177f8.png&quot;&gt;Разберем небольшой кейс. Источник данных, собранный на коленке:</summary><content type="html">
  &lt;h2&gt;Вводная часть&lt;/h2&gt;
  &lt;p&gt;Разберем небольшой кейс. Источник данных, собранный на коленке:&lt;/p&gt;
  &lt;p&gt;SET1:&lt;/p&gt;
  &lt;figure class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://teletype.in/files/01/0a/010abb90-16a6-4904-8648-8e12ce9177f8.png&quot; width=&quot;214&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;SET2:&lt;/p&gt;
  &lt;figure class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://teletype.in/files/6d/50/6d506c11-04a3-4ef9-a593-60bbe5b09e28.png&quot; width=&quot;209&quot; /&gt;
  &lt;/figure&gt;
  &lt;h2&gt;Модель 1&lt;/h2&gt;
  &lt;p&gt;Скрипт загрузки:&lt;/p&gt;
  &lt;pre&gt;SET1:
LOAD
    ID,
    &amp;quot;Field 1&amp;quot;,
    1 			As [Flag Set 1]
FROM [lib://Source/data.xlsx]
(ooxml, embedded labels, table is SET1);

SET2:
LOAD
    ID,
    &amp;quot;Field 2&amp;quot;,
    1 			As [Flag Set 2]
FROM [lib://Source/data.xlsx]
(ooxml, embedded labels, table is SET2);&lt;/pre&gt;
  &lt;p&gt;Скриншот модели:&lt;/p&gt;
  &lt;figure class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://teletype.in/files/bf/1d/bf1d83c0-1fad-49d9-a83a-e3877d79ef26.png&quot; width=&quot;439&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;Посчитаем количество уникальных ID 4-мя способами:&lt;/p&gt;
  &lt;pre&gt;Count(Distinct ID)
Count({&amp;lt;[Flag Set 1]={1}&amp;gt;} Distinct ID)
Count({&amp;lt;[Flag Set 2]={1}&amp;gt;} Distinct ID)
Count({ &amp;lt;[Flag Set 1]={1}&amp;gt; + &amp;lt;[Flag Set 2]={1}&amp;gt; } Distinct ID)&lt;/pre&gt;
  &lt;p&gt;Результат:&lt;/p&gt;
  &lt;figure class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://teletype.in/files/6b/b6/6bb66d5c-c428-40c8-b8b5-86374ecad42c.png&quot; width=&quot;700&quot; /&gt;
  &lt;/figure&gt;
  &lt;h2&gt;Модель 2&lt;/h2&gt;
  &lt;p&gt;Меняем одну строку:&lt;/p&gt;
  &lt;pre&gt;SET1:
LOAD
    ID,
    &amp;quot;Field 1&amp;quot;,
    1 			As [Flag Set 1]
FROM [lib://Source/data.xlsx]
(ooxml, embedded labels, table is SET1);

Outer Join(SET1)
LOAD
    ID,
    &amp;quot;Field 2&amp;quot;,
    1 			As [Flag Set 2]
FROM [lib://Source/data.xlsx]
(ooxml, embedded labels, table is SET2);&lt;/pre&gt;
  &lt;p&gt;Получилась модель данных:&lt;/p&gt;
  &lt;figure class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://teletype.in/files/5e/fa/5efae7d6-f04a-4b61-84ed-f9cb75f87617.png&quot; width=&quot;213&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;Формулы остаются те же, а результат меняется:&lt;/p&gt;
  &lt;figure class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://teletype.in/files/93/64/936490b1-d2d0-4ae1-a72a-1b0b9d840f12.png&quot; width=&quot;633&quot; /&gt;
  &lt;/figure&gt;
  &lt;h2&gt;Модель 3&lt;/h2&gt;
  &lt;p&gt;Скрипт:&lt;/p&gt;
  &lt;pre&gt;SET1:
LOAD
    ID,
    &amp;quot;Field 1&amp;quot;
FROM [lib://Source/data.xlsx]
(ooxml, embedded labels, table is SET1);

SET2:
LOAD
    ID,
    &amp;quot;Field 2&amp;quot;
FROM [lib://Source/data.xlsx]
(ooxml, embedded labels, table is SET2);

//==============================

Dim1:
LOAD
    ID,
    1 			As [Flag Set 1]
FROM [lib://Source/data.xlsx]
(ooxml, embedded labels, table is SET1);

Dim2:
LOAD
    ID,
    1 			As [Flag Set 2]
FROM [lib://Source/data.xlsx]
(ooxml, embedded labels, table is SET2);&lt;/pre&gt;
  &lt;p&gt;Модель данных:&lt;/p&gt;
  &lt;figure class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://teletype.in/files/a9/40/a9402f77-ce2e-4348-b4db-1e48f7ee004c.png&quot; width=&quot;394&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;Результат работы:&lt;/p&gt;
  &lt;figure class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://teletype.in/files/d3/c8/d3c8f48d-fc76-432b-af2a-952f160f16d6.png&quot; width=&quot;674&quot; /&gt;
  &lt;/figure&gt;
  &lt;h2&gt;Модель 4&lt;/h2&gt;
  &lt;p&gt;Скрипт:&lt;/p&gt;
  &lt;pre&gt;SET1:
LOAD
    ID,
    &amp;quot;Field 1&amp;quot;
FROM [lib://Source/data.xlsx]
(ooxml, embedded labels, table is SET1);

SET2:
LOAD
    ID,
    &amp;quot;Field 2&amp;quot;
FROM [lib://Source/data.xlsx]
(ooxml, embedded labels, table is SET2);


DIM:
LOAD
    ID,
    1 			As [Flag Set 1]
FROM [lib://Source/data.xlsx]
(ooxml, embedded labels, table is SET1);

Concatenate(DIM)
LOAD
    ID,
    1 			As [Flag Set 2]
FROM [lib://Source/data.xlsx]
(ooxml, embedded labels, table is SET2);&lt;/pre&gt;
  &lt;p&gt;Модель данных:&lt;/p&gt;
  &lt;figure class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://teletype.in/files/b2/ba/b2ba79cb-91b0-4e4f-ae91-8c2c3204c1ba.png&quot; width=&quot;657&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;Результат работы:&lt;/p&gt;
  &lt;figure class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://teletype.in/files/3a/e7/3ae7c898-bfb7-441e-91a3-8365838a7948.png&quot; width=&quot;681&quot; /&gt;
  &lt;/figure&gt;

</content></entry><entry><id>qliksense:JavaScript-Export-Table-to-Excel</id><link rel="alternate" type="text/html" href="https://teletype.in/@qliksense/JavaScript-Export-Table-to-Excel?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=qliksense"></link><title>JavaScript Export Table to Excel</title><published>2020-10-13T16:40:14.085Z</published><updated>2020-10-14T04:37:17.262Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://teletype.in/files/b0/14/b014b49c-b05d-4fe6-8467-b60fb827970a.png"></media:thumbnail><category term="javascript" label="javascript"></category><summary type="html">&lt;img src=&quot;https://teletype.in/files/a3/cf/a3cfc720-e6b1-40de-b9b0-f1a4c981a33b.jpeg&quot;&gt;Я сделал подборку библиотек JS, которые пригодятся как для разработки mashup, так и для разработки extensions.</summary><content type="html">
  &lt;figure class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://teletype.in/files/a3/cf/a3cfc720-e6b1-40de-b9b0-f1a4c981a33b.jpeg&quot; width=&quot;1080&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;Я сделал подборку библиотек JS, которые пригодятся как для разработки mashup, так и для разработки extensions.&lt;/p&gt;
  &lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;https://tableexport.v5.travismclarke.com/&quot; target=&quot;_blank&quot;&gt;https://tableexport.v5.travismclarke.com/&lt;/a&gt; - The simple, easy-to-implement library to export HTML tables to &lt;code&gt;xlsx&lt;/code&gt;, &lt;code&gt;xls&lt;/code&gt;, &lt;code&gt;csv&lt;/code&gt;, and &lt;code&gt;txt&lt;/code&gt; files.&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://github.com/exceljs/exceljs&quot; target=&quot;_blank&quot;&gt;https://github.com/exceljs/exceljs&lt;/a&gt; - Read, manipulate and write spreadsheet data and styles to XLSX and JSON. Reverse engineered from Excel spreadsheet files as a project.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.grapecity.com/blogs/how-to-importexport-excel-files-using-javascript-and-spread-sheets&quot; target=&quot;_blank&quot;&gt;https://www.grapecity.com/blogs/how-to-importexport-excel-files-using-javascript-and-spread-sheets&lt;/a&gt; - на основе SpreadJS (платная, есть 30 дневная триальная версия)&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://github.com/jmaister/excellentexport&quot; target=&quot;_blank&quot;&gt;https://github.com/jmaister/excellentexport&lt;/a&gt; - JavaScript export to Excel or CSV. A quick JavaScript library to create export to Excel/CSV from HTML tables in the browser. No server required.&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://bootstrap-table.com/&quot; target=&quot;_blank&quot;&gt;https://bootstrap-table.com/&lt;/a&gt; - Bootstrap Table. An extended table to the integration with some of the most widely used CSS frameworks. (Supports Bootstrap, Semantic UI, Bulma, Material Design, Foundation)&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://redstapler.co/sheetjs-tutorial-create-xlsx/&quot; target=&quot;_blank&quot;&gt;https://redstapler.co/sheetjs-tutorial-create-xlsx/&lt;/a&gt; - SheetJS Tutorial – Create xlsx with Javascript. &lt;a href=&quot;https://sheetjs.com/&quot; target=&quot;_blank&quot;&gt;https://sheetjs.com/&lt;/a&gt; - Read, edit, and export spreadsheets. Works in web browsers and servers. Trusted by Office 365. Платная, сколько стоит не ясно. Есть триальная версия неограниченная по времени, но без стилей.&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.npmjs.com/package/exceljs&quot; target=&quot;_blank&quot;&gt;https://www.npmjs.com/package/exceljs&lt;/a&gt; - Read, manipulate and write spreadsheet data and styles to XLSX and JSON. Reverse engineered from Excel spreadsheet files as a project.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;https://github.com/ecscstatsconsulting/js-excel-generator&quot; target=&quot;_blank&quot;&gt;https://github.com/ecscstatsconsulting/js-excel-generator&lt;/a&gt; - A JavaScript Library for creating Excel Spreadsheets from HTML Tables.&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.npmjs.com/package/xlsx-style&quot; target=&quot;_blank&quot;&gt;https://www.npmjs.com/package/xlsx-style&lt;/a&gt; - Parser and writer for various spreadsheet formats. Pure-JS cleanroom implementation from official specifications and related documents.&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.igniteui.com/javascript-excel-library/overview&quot; target=&quot;_blank&quot;&gt;https://www.igniteui.com/javascript-excel-library/overview&lt;/a&gt; - The Infragistics Ignite UI for jQuery JavaScript Excel library provides the same extensive Excel document object model found in our rich client and server Excel engines right there in the browser (or any JS runtime, like Node).&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.geeksforgeeks.org/how-to-convert-html-table-into-excel-spreadsheet-using-jquery/&quot; target=&quot;_blank&quot;&gt;https://www.geeksforgeeks.org/how-to-convert-html-table-into-excel-spreadsheet-using-jquery/&lt;/a&gt; - Any HTML table that you have created can be converted into an Excel Spreadsheet by using jQuery and it is compatible with all browsers. There are two simple approaches that require basic HTML and jQuery knowledge to achieve this. Разбор примера на основе &lt;a href=&quot;https://github.com/rainabba/jquery-table2excel&quot; target=&quot;_blank&quot;&gt;https://github.com/rainabba/jquery-table2excel&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.c-sharpcorner.com/article/reading-a-excel-file-using-html5-jquery/&quot; target=&quot;_blank&quot;&gt;https://www.c-sharpcorner.com/article/reading-a-excel-file-using-html5-jquery/&lt;/a&gt; - In this article, we will learn how to read an Excel file from the client-side and display its contents in an HTML table by making use of the FileReader() API in HTML5 &amp;amp; jQuery.&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://jspreadsheets.com/&quot; target=&quot;_blank&quot;&gt;https://jspreadsheets.com/&lt;/a&gt; - подборка &lt;em&gt;Best JavaScript Data Grids and Spreadsheets&lt;/em&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://medium.com/better-programming/convert-json-to-xlsx-file-in-javascript-e7611a975916&quot; target=&quot;_blank&quot;&gt;https://medium.com/better-programming/convert-json-to-xlsx-file-in-javascript-e7611a975916&lt;/a&gt; - Convert your JSON into a .xlsx file and save it&lt;/li&gt;
  &lt;/ul&gt;

</content></entry><entry><id>qliksense:lesson-1-registration-Qlik-Sense-Business-Cloud</id><link rel="alternate" type="text/html" href="https://teletype.in/@qliksense/lesson-1-registration-Qlik-Sense-Business-Cloud?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=qliksense"></link><title>Урок 1. Регистрация в Qlik Sense Business Cloud. Как начать работать с Qlik в облачном сервисе?</title><published>2020-10-12T21:02:15.291Z</published><updated>2020-10-12T21:02:15.291Z</updated><category term="dannye" label="данные"></category><summary type="html">https://t.me/qlik_insight - telegram канал - пишу про Qlik Sense как есть на самом деле, критикую, что-то хвалю, делюсь обучающими материалами.</summary><content type="html">
  &lt;p&gt;&lt;a href=&quot;https://t.me/qlik_insight&quot; target=&quot;_blank&quot;&gt;https://t.me/qlik_insight&lt;/a&gt; - telegram канал - пишу про Qlik Sense как есть на самом деле, критикую, что-то хвалю, делюсь обучающими материалами.&lt;/p&gt;
  &lt;figure class=&quot;m_column&quot;&gt;
    &lt;iframe src=&quot;https://www.youtube.com/embed/G_rflkDEn_4?autoplay=0&amp;loop=0&amp;mute=0&quot;&gt;&lt;/iframe&gt;
    &lt;figcaption&gt;Урок 1. Регистрация в Qlik Sense Business Cloud. Как начать работать с Qlik в облачном сервисе? В этом уроке будет описан процесс создания аккаунта в облачном сервисе Qlik Sense Business Cloud.&lt;/figcaption&gt;
  &lt;/figure&gt;

</content></entry><entry><id>qliksense:qs-desktop-and-cloud</id><link rel="alternate" type="text/html" href="https://teletype.in/@qliksense/qs-desktop-and-cloud?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=qliksense"></link><title>Как скачать актуальную версию Qlik Sense Desktop и войти через Cloud?</title><published>2020-10-01T21:46:24.417Z</published><updated>2020-10-02T05:37:07.044Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://teletype.in/files/36/02/3602df5b-59da-469d-8343-e41c2dfe443b.png"></media:thumbnail><category term="qlik" label="qlik"></category><summary type="html">&lt;img src=&quot;https://teletype.in/files/36/02/3602df5b-59da-469d-8343-e41c2dfe443b.png&quot;&gt;В этой заметке я покажу, как скачать последнюю версию QS Desktop и авторизоваться под облачной учеткой.</summary><content type="html">
  &lt;p&gt;В этой заметке я покажу, как скачать последнюю версию QS Desktop и авторизоваться под облачной учеткой.&lt;/p&gt;
  &lt;p&gt;Заходим в ваше облако, либо регистрируемся (доступ триал дается на 30 дней, можно потом смело снова зарегистрироваться, пока клик с множественными регистрациями не борется, к счастью).&lt;/p&gt;
  &lt;figure class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://teletype.in/files/36/02/3602df5b-59da-469d-8343-e41c2dfe443b.png&quot; width=&quot;1274&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;Вверху страницы нажимаем кнопку на профиль (см. 1), далее переходим в Settings.&lt;/p&gt;
  &lt;figure class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://teletype.in/files/59/f6/59f6d034-3973-4b0f-9dab-19750564bde7.png&quot; width=&quot;1003&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;Первая ссылка-кнопка позволяет скачать актуальную версию Qlik Sense Desktop.&lt;/p&gt;
  &lt;p&gt;Скачайте, установите, запустите. Далее нажмите вторую ссылку, которая свяжет ваш desktop с облаком.&lt;/p&gt;
  &lt;figure class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://teletype.in/files/1c/1d/1c1d0e48-b529-41bc-b8b7-66e4c7d956c0.png&quot; width=&quot;805&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;В десктопе появится такая вот кнопка, жмете на нее, далее вбиваете логин и пароль от облака и используете десктоп. После истечения логина снова регистрируетесь, нажимаете на кнопку и у Вас опять активный десктоп.&lt;/p&gt;

</content></entry></feed>