{"id":187457,"date":"2026-06-18T15:37:25","date_gmt":"2026-06-18T06:37:25","guid":{"rendered":"https:\/\/support.questetra.com\/?p=187457"},"modified":"2026-06-22T09:34:29","modified_gmt":"2026-06-22T00:34:29","slug":"converter-tsv-string-to-svg-file-2026","status":"publish","type":"post","link":"https:\/\/support.questetra.com\/en\/addons\/converter-tsv-string-to-svg-file-2026\/","title":{"rendered":"Converter: #TSV String to #SVG File"},"content":{"rendered":"\n<h4 class=\"wp-block-heading has-background\" style=\"background-color:#084A28;color:#ffffff;margin-top:var(--wp--preset--spacing--30);margin-right:0;margin-bottom:0;margin-left:0;padding-top:var(--wp--preset--spacing--10);padding-right:var(--wp--preset--spacing--20);padding-bottom:var(--wp--preset--spacing--10);padding-left:var(--wp--preset--spacing--20)\"><strong>Converter: #TSV String to #SVG File<\/strong><\/h4>\n\n\n\n<p class=\"has-text-align-right has-background has-small-font-size mt-0 pt-0 wp-block-paragraph\" style=\"background-color:#084A28;color:#ffffff;margin-top:0;margin-right:0;margin-bottom:0;margin-left:0;padding-top:0;padding-right:var(--wp--preset--spacing--30);padding-bottom:0;padding-left:var(--wp--preset--spacing--30)\"><a href=\"https:\/\/support.questetra.com\/en\/addons\/converter-tsv-string-to-svg-file-2026\/\"><span class=\"material-icons\">translate<\/span> \u30b3\u30f3\u30d0\u30fc\u30bf: #TSV \u6587\u5b57\u5217 to #SVG \u30d5\u30a1\u30a4\u30eb<\/a><\/p>\n\n\n\n<p class=\"has-background mt-0 pt-0 wp-block-paragraph\" style=\"border:2px solid #084A28;color:#333333;margin-top:0;margin-right:0;margin-bottom:var(--wp--preset--spacing--30);margin-left:0;padding-top:var(--wp--preset--spacing--10);padding-right:var(--wp--preset--spacing--20);padding-bottom:var(--wp--preset--spacing--10);padding-left:var(--wp--preset--spacing--20)\">Converts a numeric TSV string into a stacked bar chart SVG file. The first TSV column is used as the aggregation unit, such as &#8220;YYYYMM&#8221;, and the first row as data series, such as  &#8220;Sales Representative&#8221; or &#8220;Client&#8221;.<\/p>\n\n\n\n<figure class=\"wp-block-image alignright has-custom-border is-style-default\" style=\"margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px\"><img decoding=\"async\" src=\"data:image;base64,\niVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAACx0lEQVRYR8WXz0sUYRjHP5O0CLX+\nuHTIQ7sHIby0BdIh0EU6hwmd20Vx9mb9AUvlQQSRVhBq0WW3gxcFKzx4000kBKO2QNgSssgS6uDu\noQQJJt4ZZ3ecH+s4O+kLyy7s+z7fz\/PM87zPMxKnvKRj6afpBbpRiCDRAkQOzhdQKCEhvvMkeOnW\n7tEAWVrYZwi4B6qom1UCUgSYII747bhqAzwhxhkeH0PYLCTE48i8cCJwBnhKCkn13I+VQua+nSF7\ngDQ54K4fyhUbCjkSxM02rQD+en5YT2GChJpLlXUYQHvmWV89txq7bcyJKoCW7Vt1JJxb7hIBwnp1\nVAHSPAQeuLVSa99U1xTzW\/Msflt02vYIWdXDCCBKptkPgI07GzQFmhhcGXSCKCHTWgXQbrjnRvGe\niz20nWvzxJO8lqS9uZ3t39u1INRc0CJgk\/nCi47WDk8AxkOOEAcVoQGkyat3vGH5BbD3d4\/RwijD\nb4fNzrxCJqoDfAEuGXdMd03TeaHTUwRC50NqDgjx8Q\/jJN8k7ewUkLmqAyielBwOieiFg+Fa4tpJ\nGelIgODZIJnuDDt\/dhh67a41rN5aZfnHspPnVWwDgOURiF1CPBvN0hvqJfcxx8DKgH+BUnhPgohj\nEhrFG6QG1n6usVne9ASw9H2J3CfR3w4tQxLalOHszVn6wn0I8XpXppixRs9UhpaLaPLGJP2X+2ls\naKxXH1sAMFxE2l1guYqNEHOf51j4uuAJplgqsv5r3Xi2jKyNd0c2Ix1iZnPGzyS0aUZaOxbVYGlI\nY9fH2N3fZeTdiKcImA6VCRCytmOx61QHEh3zf45kUAm9LndyQyk8QyZmfoYnNZZbPK8dAf1fbVAR\nV5jXSakMxLy9mOgQWnWIUVp83IIIYfFqlqrv1cz8wEREFKJIRFBoQeKKukU0FokSCgUk8rU8dp8D\nflS8Cxv\/AFp57iGwqv7bAAAAAElFTkSuQmCC\n\" alt=\"Auto Step icon\" class=\"has-border-color has-ast-global-color-6-border-color\" style=\"border-width:0.5em\"\/><\/figure>\n\n\n\n<div class=\"wp-block-coblocks-accordion\">\n<div class=\"wp-block-coblocks-accordion-item\"><details open><summary class=\"wp-block-coblocks-accordion-item__title\">Configs for this Auto Step<\/summary><div class=\"wp-block-coblocks-accordion-item__content\">\n<dl style=\"margin: 0 0 -0.7em 0\">\n<div style=\"margin:4px 0px 1em; border:1px dotted #aaa; padding:4px 0 0 4px\" title=\"Main\"><dt style=\"font-weight: 300; font-size: 50%; margin: -1em 0 0 0; color: #aaa;\">StrConfA<\/dt><dd style=\"margin: -0.5em 0 0.1em 1em\">A: Set TSV String<span style=\"color:#990000;\"> *<\/span><span style=\"color:#000099;\"><sup style=\"font-style:italic;\">#{EL}<\/sup><\/span><\/dd>\n<dt style=\"font-weight: 300; font-size: 50%; margin: -1em 0 0 0; color: #aaa;\">StrConfB1<\/dt><dd style=\"margin: -0.5em 0 0.1em 1em\">B1: Set Pixel Widths (Unit Bar Total) as CSV (default:60,360,60)<span style=\"color:#000099;\"><sup style=\"font-style:italic;\">#{EL}<\/sup><\/span><\/dd>\n<dt style=\"font-weight: 300; font-size: 50%; margin: -1em 0 0 0; color: #aaa;\">StrConfB2<\/dt><dd style=\"margin: -0.5em 0 0.1em 1em\">B2: Set Series Color in CSV (default: &#8220;#e66,#39f,#f90,#a3c,\u2026&#8221;)<span style=\"color:#000099;\"><sup style=\"font-style:italic;\">#{EL}<\/sup><\/span><\/dd>\n<dt style=\"font-weight: 300; font-size: 50%; margin: -1em 0 0 0; color: #aaa;\">StrConfB3<\/dt><dd style=\"margin: -0.5em 0 0.1em 1em\">B3: Set Max Scale Value (default: 100)<span style=\"color:#000099;\"><sup style=\"font-style:italic;\">#{EL}<\/sup><\/span><\/dd>\n<dt style=\"font-weight: 300; font-size: 50%; margin: -1em 0 0 0; color: #aaa;\">StrConfB4<\/dt><dd style=\"margin: -0.5em 0 0.1em 1em\">B4: Set Scale Labels in CSV (eg. &#8220;0,50,100%&#8221;)<span style=\"color:#000099;\"><sup style=\"font-style:italic;\">#{EL}<\/sup><\/span><\/dd>\n<dt style=\"font-weight: 300; font-size: 50%; margin: -1em 0 0 0; color: #aaa;\">StrConfB5<\/dt><dd style=\"margin: -0.5em 0 0.1em 1em\">B5: Set Value Prefix\/Suffix in CSV (eg. &#8220;$,&#8221;, &#8220;,usd&#8221;)<span style=\"color:#000099;\"><sup style=\"font-style:italic;\">#{EL}<\/sup><\/span><\/dd>\n<dt style=\"font-weight: 300; font-size: 50%; margin: -1em 0 0 0; color: #aaa;\">BoolConfB6<\/dt><dd style=\"margin: -0.5em 0 0.1em 1em\">B6: Legend (Color Marker + Series Name), Hide or Show<\/dd>\n<dt style=\"font-weight: 300; font-size: 50%; margin: -1em 0 0 0; color: #aaa;\">BoolConfB7<\/dt><dd style=\"margin: -0.5em 0 0.1em 1em\">B7: Scale Labels, Hide or Show<\/dd>\n<dt style=\"font-weight: 300; font-size: 50%; margin: -1em 0 0 0; color: #aaa;\">SelectConfC<\/dt><dd style=\"margin: -0.5em 0 0.1em 1em\">C: Select FILE DATA to store Generated SVG (append)<span style=\"color:#990000;\"> *<\/span><\/dd>\n<\/div>\n<div style=\"margin:4px 0px 1em; border:1px dotted #aaa; padding:4px 0 0 4px\" title=\"Advanced\"><dt style=\"font-weight: 300; font-size: 50%; margin: -1em 0 0 0; color: #aaa;\">StrConfB8<\/dt><dd style=\"margin: -0.5em 0 0.1em 1em\">B8: Set SVG File Name (default: chart.svg)<span style=\"color:#000099;\"><sup style=\"font-style:italic;\">#{EL}<\/sup><\/span><\/dd>\n<dt style=\"font-weight: 300; font-size: 50%; margin: -1em 0 0 0; color: #aaa;\">SelectConfD1<\/dt><dd style=\"margin: -0.5em 0 0.1em 1em\">D1: Select NUMERIC for Number of TSV Lines (update)<\/dd>\n<dt style=\"font-weight: 300; font-size: 50%; margin: -1em 0 0 0; color: #aaa;\">SelectConfD2<\/dt><dd style=\"margin: -0.5em 0 0.1em 1em\">D2: Select NUMERIC for TSV Rows (ignore blanks) (update)<\/dd>\n<\/div>\n\n<\/dl>\n<\/div><\/details><\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-coblocks-accordion\">\n<div class=\"wp-block-coblocks-accordion-item\"><details><summary class=\"wp-block-coblocks-accordion-item__title\">Script (click to open)<\/summary><div class=\"wp-block-coblocks-accordion-item__content\">\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-js\" data-lang=\"JavaScript\"><code>\/\/ Script Example of Business Process Automation\n\/\/ for &apos;engine type: 3&apos; (&quot;GraalJS standard mode&quot;)\nmain();\nfunction main(){ \n\/\/\/\/ == Config Retrieving \/ \u5de5\u7a0b\u30b3\u30f3\u30d5\u30a3\u30b0\u306e\u53c2\u7167 ==\nconst strTsv        = configs.get       ( &quot;StrConfA&quot; );     \/\/ REQUIRED\n  const arr2dTsv    = parseAsRectangular( strTsv );\n  if( arr2dTsv.length === 0 ){\n    throw new Error( &quot;\\n AutomatedTask ConfigError: Config {A: TSV} is empty \\n&quot; );\n  }\n  if( arr2dTsv.length === 1 ){\n    throw new Error( &quot;\\n AutomatedTask ConfigError: Config {A: TSV} requires at least 2 lines (header and data) \\n&quot; );\n  }\nconst strWidths     = configs.get       ( &quot;StrConfB1&quot; ) || &quot;60,360,60&quot;; \/\/ default\nconst arrWidths     = strWidths.split(&quot;,&quot;);\nconst numWidthUnit  = parseInt (arrWidths[0], 10) || 60;\nconst numWidthBar   = parseInt (arrWidths[1], 10) || 360;\nconst numWidthTotal = parseInt (arrWidths[2], 10) || 60;\nconst strColors     = configs.get       ( &quot;StrConfB2&quot; ) || &quot;#e66,#39f,#f90,#a3c,#6a5,#678,#cc3,#999&quot;;     \/\/ default\nconst arrColors     = strColors.split(&quot;,&quot;);\nconst strMaxScale   = configs.get       ( &quot;StrConfB3&quot; );\nconst numMaxScale   = strMaxScale !== &quot;&quot; ? parseFloat(strMaxScale) : 100; \/\/ default 100\nconst strLabels     = configs.get       ( &quot;StrConfB4&quot; ) || &quot;0,50,100%&quot;;\nconst arrLabels     = strLabels.split(&quot;,&quot;);\nconst strPrefSuf    = configs.get(&quot;StrConfB5&quot;) || &quot;,&quot;; \/\/ \u30c7\u30d5\u30a9\u30eb\u30c8\u306f\u30ab\u30f3\u30de\u306e\u307f\nconst arrPrefSuf    = strPrefSuf.split(&quot;,&quot;);\nconst strPrefix     = arrPrefSuf[0] || &quot;&quot;; \/\/ \u30ab\u30f3\u30de\u306e\u5de6\u5074\nconst strSuffix     = arrPrefSuf.length &gt; 1 ? arrPrefSuf[1] : &quot;&quot;; \/\/ \u30ab\u30f3\u30de\u306e\u53f3\u5074\nconst isShowLegend  = configs.getObject ( &quot;BoolConfB6&quot; );\nconst isShowLabels  = configs.getObject ( &quot;BoolConfB7&quot; );\nconst strFileName   = configs.get       ( &quot;StrConfB8&quot; ) || &quot;chart.svg&quot;;\nconst filesPocketC  = configs.getObject ( &quot;SelectConfC&quot; ); \/\/ REQUIRED\nconst numPocketD1   = configs.getObject ( &quot;SelectConfD1&quot; );\nconst numPocketD2   = configs.getObject ( &quot;SelectConfD2&quot; );\n\/\/\/\/ == Calculating \/ \u6f14\u7b97 (SVG\u6587\u5b57\u5217\u306e\u751f\u6210) ==\nconst marginL = 15; \/\/ \u5de6\u5074\u306e\u4f59\u767d\nconst marginR = 15; \/\/ \u53f3\u5074\u306e\u4f59\u767d\nconst svgTotalWidth = marginL + numWidthUnit + numWidthBar + numWidthTotal + marginR;\nlet svgY = 10; \/\/ Y\u5ea7\u6a19\u306e\u521d\u671f\u30aa\u30d5\u30bb\u30c3\u30c8\nlet svgContent = `&lt;style&gt;text { font-family: sans-serif; font-size: 12px; fill: #333; }&lt;\/style&gt;\\n`;\n\/\/ XML\u30a8\u30b9\u30b1\u30fc\u30d7\u7528\u95a2\u6570\nfunction escapeXml(unsafe) {\n    return unsafe.replace(\/[&lt;&gt;&amp;&apos;&quot;]\/g, function (c) {\n        switch (c) {\n            case &apos;&lt;&apos;: return &apos;&amp;lt;&apos;;\n            case &apos;&gt;&apos;: return &apos;&amp;gt;&apos;;\n            case &apos;&amp;&apos;: return &apos;&amp;amp;&apos;;\n            case &apos;\\&apos;&apos;: return &apos;&amp;apos;&apos;;\n            case &apos;&quot;&apos;: return &apos;&amp;quot;&apos;;\n        }\n    });\n}\n\/\/ --- 1. \u51e1\u4f8b\u306e\u63cf\u753b ---\nif (isShowLegend) {\n  let lx = marginL;\n  for (let i = 1; i &lt; arr2dTsv[0].length; i++) {\n    const color = arrColors[(i - 1) % arrColors.length];\n    const seriesName = escapeXml(arr2dTsv[0][i]);\n    \/\/ \u7c21\u6613\u7684\u306a\u6587\u5b57\u5e45\u63a8\u6e2c\uff08\u9577\u3059\u304e\u305f\u3089\u6539\u884c\uff09\n    const estimateW = seriesName.length * 12 + 25; \n    if (lx + estimateW &gt; svgTotalWidth - marginR) {\n      lx = marginL;\n      svgY += 20;\n    }\n    svgContent += `&lt;rect x=&quot;${lx}&quot; y=&quot;${svgY}&quot; width=&quot;10&quot; height=&quot;10&quot; fill=&quot;${color}&quot; rx=&quot;2&quot;\/&gt;\\n`;\n    svgContent += `&lt;text x=&quot;${lx + 16}&quot; y=&quot;${svgY + 9}&quot;&gt;${seriesName}&lt;\/text&gt;\\n`;\n    lx += estimateW + 10;\n  }\n  svgY += 25; \/\/ \u4e0b\u90e8\u30de\u30fc\u30b8\u30f3\n}\n\/\/ --- 2. \u76ee\u76db\u308a\u306e\u63cf\u753b ---\nif (isShowLabels) {\n  const stepW = numWidthBar \/ (arrLabels.length - 1 || 1);\n  for (let i = 0; i &lt; arrLabels.length; i++) {\n    const xPos = marginL + numWidthUnit + (stepW * i);\n    let anchor = i === 0 ? &quot;start&quot; : i === arrLabels.length - 1 ? &quot;end&quot; : &quot;middle&quot;;\n    svgContent += `&lt;text x=&quot;${xPos}&quot; y=&quot;${svgY + 10}&quot; fill=&quot;#777&quot; text-anchor=&quot;${anchor}&quot;&gt;${escapeXml(arrLabels[i])}&lt;\/text&gt;\\n`;\n  }\n  svgY += 20;\n}\n\/\/ --- 3. \u68d2\u30b0\u30e9\u30d5\u306e\u63cf\u753b ---\nconst rowHeight = 18; \/\/ 1\u884c\u306e\u9ad8\u3055 (MdChart\u306e\u9593\u9694\u306b\u5bc4\u305b\u308b\u305f\u3081\u77ed\u7e2e)\nfor (let i = 1; i &lt; arr2dTsv.length; i++) {\n  \/\/ \u30e6\u30cb\u30c3\u30c8\u540d\uff08\u5de6\u5074\uff09\n  svgContent += `&lt;text x=&quot;${marginL}&quot; y=&quot;${svgY + 13}&quot;&gt;${escapeXml(arr2dTsv[i][0])}&lt;\/text&gt;\\n`;\n  \/\/ \u30b0\u30e9\u30d5\u80cc\u666f\uff08\u30b0\u30ec\u30fc\uff09 \u203bMdChart\u306b\u5408\u308f\u305b\u3066\u9ad8\u3055\u309210px\u306b\u5909\u66f4\n  svgContent += `&lt;rect x=&quot;${marginL + numWidthUnit}&quot; y=&quot;${svgY + 4}&quot; width=&quot;${numWidthBar}&quot; height=&quot;10&quot; fill=&quot;#eee&quot; rx=&quot;2&quot;\/&gt;\\n`;\n  let currentX = marginL + numWidthUnit;\n  let totalValue = 0;\n  \/\/ \u7cfb\u5217\u3054\u3068\u306e\u7a4d\u307f\u4e0a\u3052\u63cf\u753b\n  for (let j = 1; j &lt; arr2dTsv[i].length; j++) {\n    const cellValue = parseFloat(arr2dTsv[i][j].replace(\/[^0-9.-]\/g, &quot;&quot;)) || 0;\n    totalValue += cellValue;\n    const barW = Math.max(0, (cellValue \/ numMaxScale) * numWidthBar);\n    \n    if (barW &gt; 0) {\n      const color = arrColors[(j - 1) % arrColors.length];\n      svgContent += `&lt;rect x=&quot;${currentX}&quot; y=&quot;${svgY + 4}&quot; width=&quot;${barW}&quot; height=&quot;10&quot; fill=&quot;${color}&quot;\/&gt;\\n`;\n      currentX += barW;\n    }\n  }\n  \/\/ \u5408\u8a08\u5024\uff08\u53f3\u5074\uff09\n  const totalStr = `${strPrefix}${totalValue.toLocaleString()}${strSuffix}`;\n  svgContent += `&lt;text x=&quot;${marginL + numWidthUnit + numWidthBar + 10}&quot; y=&quot;${svgY + 13}&quot; text-anchor=&quot;start&quot;&gt;${escapeXml(totalStr)}&lt;\/text&gt;\\n`;\n  svgY += rowHeight; \/\/ \u6b21\u306e\u884c\u3078Y\u5ea7\u6a19\u3092\u79fb\u52d5\n}\n\/\/ --- 4. \u5168\u4f53\u3092SVG\u30bf\u30b0\u3067\u30e9\u30c3\u30d7 ---\nconst finalSvgHeight = svgY + 10;\nlet strSvg = `&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;\\n`;\nstrSvg += `&lt;svg xmlns=&quot;http:\/\/www.w3.org\/2000\/svg&quot; viewBox=&quot;0 0 ${svgTotalWidth} ${finalSvgHeight}&quot; width=&quot;${svgTotalWidth}&quot; height=&quot;${finalSvgHeight}&quot;&gt;\\n`;\nstrSvg += `&lt;rect width=&quot;100%&quot; height=&quot;100%&quot; fill=&quot;#ffffff&quot;\/&gt;\\n`; \/\/ \u80cc\u666f\u306e\u900f\u904e\u9632\u6b62\u7528\u767d\u5857\u308a\nstrSvg += svgContent;\nstrSvg += `&lt;\/svg&gt;`;\n\/\/\/\/ == Data Updating \/ \u30ef\u30fc\u30af\u30d5\u30ed\u30fc\u30c7\u30fc\u30bf\u3078\u306e\u4ee3\u5165 ==\n\/\/ SVG\u30d5\u30a1\u30a4\u30eb\u306e\u4fdd\u5b58 (C)\nif (filesPocketC !== null) { \n  let filesSvg = engine.findData(filesPocketC);\n  if (filesSvg === null) {\n    filesSvg = new java.util.ArrayList();\n  }\n  \n  \/\/ \u6307\u5b9a\u3055\u308c\u305f\u30d5\u30a1\u30a4\u30eb\u540d\u3001\u306a\u3051\u308c\u3070 &quot;chart.svg&quot;\n  let finalFileName = strFileName;\n  if (!finalFileName.toLowerCase().endsWith(&quot;.svg&quot;)) {\n      finalFileName += &quot;.svg&quot;;\n  }\n  filesSvg.add(\n    new com.questetra.bpms.core.event.scripttask.NewQfile(\n      finalFileName,\n      &quot;image\/svg+xml; charset=UTF-8&quot;,\n      strSvg\n    )\n  );\n  engine.setData(filesPocketC, filesSvg);\n}\n\/\/ \u30aa\u30ea\u30b8\u30ca\u30eb\u306eTSV\u6587\u5b57\u5217\u306e\u884c\u6570 (D1)\nif ( numPocketD1 !== null) { \n  const totalLines = strTsv.split(&quot;\\n&quot;).length;\n  engine.setData( numPocketD1, new java.math.BigDecimal(totalLines) );\n}\n\/\/ \u7a7a\u884c\u3092\u9664\u3044\u305fTSV\u884c\u6570 (D2)\nif ( numPocketD2 !== null) { \n  engine.setData( numPocketD2, new java.math.BigDecimal(arr2dTsv.length) );\n}\n} \/\/\/\/\/\/\/\/ END &quot;main()&quot; \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\n\/**\n * Parses TSV string as a two-dimensional rectangular data matrix and creates a 2D array.\n * @param {string} strTsv - The input TSV string\n * @returns {Array&lt;Array&lt;string&gt;&gt;} Rectangular 2D array\n *\/\nfunction parseAsRectangular( strTsv ){\n  const arrTsv = strTsv.split(&quot;\\n&quot;);\n  let numMinWidth   = Infinity;\n  let numMaxWidth   = 0;\n  let numBlanklines = 0;\n  \n  const parsedRows = [];\n  for( let i = 0; i &lt; arrTsv.length; i++ ){\n    const line = arrTsv[i];\n    if( line === &quot;&quot; ){\n      numBlanklines++;\n      continue;\n    }\n    const arrCells = line.split(&quot;\\t&quot;);\n    const len = arrCells.length;\n    if( len &lt; numMinWidth ){ numMinWidth = len; }\n    if( len &gt; numMaxWidth ){ numMaxWidth = len; }\n    parsedRows.push( arrCells );\n  }\n  \n  if( numMinWidth === Infinity ){\n    numMinWidth = 0;\n  }\n  engine.log( &quot; AutomatedTask TsvDataCheck:&quot; + \n              &quot; MinWidth:&quot; + numMinWidth +\n              &quot; MaxWidth:&quot; + numMaxWidth +\n              &quot; Lines:&quot; + arrTsv.length +\n              &quot; (BlankLines:&quot; + numBlanklines + &quot;)&quot; );\n  for( let i = 0; i &lt; parsedRows.length; i++ ){\n    const row = parsedRows[i];\n    while( row.length &lt; numMaxWidth ){\n      row.push( &quot;&quot; );\n    }\n  }\n  return parsedRows;\n}\n\/*\n### NOTES-en\n- A bar chart (SVG file) is automatically generated each time a Case reaches this Automated Step.\n    - From the second row of the input TSV string onward, all fields are parsed as &quot;numeric strings&quot;, except for the first column (Column A).\n        - Only the first column (Column A) is considered as the aggregation unit name, such as &quot;YYYY-MM&quot; or &quot;Quarter&quot;.\n        - If characters other than a &quot;period (.)&quot;, a &quot;minus sign (-)&quot;, and &quot;0-9&quot; exist, the &quot;stripped string&quot; is parsed.\n        - Even if commas exist, they are considered thousands separators, and the &quot;stripped string&quot; is parsed.\n        - The &quot;stripped string&quot; is parsed using `parseFloat()`.\n        - If parsing fails, the value is evaluated as `0`.\n    - The generated &quot;SVG file&quot; will be added to the specified File-type data item.\n        - For an N-row, 2-column TSV string, a simple bar chart is displayed (e.g., &quot;Monthly Sales&quot;).\n        - For an N-row, M-column TSV string, a stacked bar chart with (M-1) &quot;series&quot; is displayed.\n        - The width of each series is calculated and drawn based on the &quot;Max Scale Value (B3)&quot;.\n- The input TSV is parsed as the &quot;simplest tab-separated string&quot;.\n- The number of lines in the input TSV string can also be saved as Case Data.\n### NOTES-ja\n- \u3053\u306e\u30a2\u30c9\u30aa\u30f3\u81ea\u52d5\u5de5\u7a0b\u306b\u30b1\u30fc\u30b9\uff08\u6848\u4ef6\uff09\u304c\u5230\u9054\u3059\u308b\u5ea6\u306b\u3001\u81ea\u52d5\u7684\u306b\u68d2\u30b0\u30e9\u30d5\uff08SVG\u30d5\u30a1\u30a4\u30eb\uff09\u304c\u751f\u6210\u3055\u308c\u307e\u3059\u3002\n    - \u5165\u529bTSV\u6587\u5b57\u5217\u306e\uff12\u884c\u76ee\u4ee5\u964d\u306f\u3001\u5168\u30d5\u30a3\u30fc\u30eb\u30c9\u304c\u300c\u6570\u5024\u6587\u5b57\u5217\u300d\u3068\u3057\u3066\u89e3\u6790\u3055\u308c\u307e\u3059\u3002\u203b\uff11\u5217\u76ee\uff08A\u5217\uff09\u3092\u9664\u304f\n        - \uff11\u5217\u76ee\uff08A\u5217\uff09\u3060\u3051\u306f\u3001\u300c\u5e74\u6708\u300d\u3084\u300c\u56db\u534a\u671f\u300d\u306a\u3069\u306e\u96c6\u8a08\u5358\u4f4d\u540d\u3068\u307f\u306a\u3055\u308c\u307e\u3059\u3002\n        - \u300c\u30d4\u30ea\u30aa\u30c9(.)\u300d\u3068\u300c\u30de\u30a4\u30ca\u30b9\u8a18\u53f7\u300d\u3068\u300c0\uff5e9\u300d\u4ee5\u5916\u306e\u6587\u5b57\u304c\u5b58\u5728\u3059\u308b\u5834\u5408\u3001\u300c\u9664\u53bb\u3055\u308c\u305f\u6587\u5b57\u5217\u300d\u304c\u89e3\u6790\u3055\u308c\u307e\u3059\u3002\n        - \u30ab\u30f3\u30de\u304c\u5b58\u5728\u3059\u308b\u5834\u5408\u3082\u3001\uff08\u6841\u533a\u5207\u308a\u6587\u5b57\u3068\u307f\u306a\u3055\u308c\uff09\u3001\u300c\u9664\u53bb\u3055\u308c\u305f\u6587\u5b57\u5217\u300d\u304c\u89e3\u6790\u3055\u308c\u307e\u3059\u3002\n        - \u300c\u9664\u53bb\u3055\u308c\u305f\u6587\u5b57\u5217\u300d\u304c `parseFloat()` \u306b\u3088\u3063\u3066\u89e3\u6790\u3055\u308c\u307e\u3059\u3002\n        - \u89e3\u6790\u306b\u5931\u6557\u3057\u305f\u5834\u5408 `0` \u3068\u307f\u306a\u3055\u308c\u307e\u3059\u3002\n    - \u751f\u6210\u3055\u308c\u305f &quot;SVG\u30d5\u30a1\u30a4\u30eb&quot; \u306f\u3001\u6307\u5b9a\u3055\u308c\u305f\u30d5\u30a1\u30a4\u30eb\u578b\u30c7\u30fc\u30bf\u9805\u76ee\u306b\u8ffd\u52a0\u4fdd\u5b58\u3055\u308c\u307e\u3059\u3002\n        - N\u884c2\u5217TSV\u6587\u5b57\u5217\u306e\u5834\u5408\u3001\u30b7\u30f3\u30d7\u30eb\u68d2\u30b0\u30e9\u30d5\u304c\u8868\u793a\u3055\u308c\u307e\u3059\u3002 \u203b\u300c\u6708\u3054\u3068\u306e\u58f2\u4e0a\u300d\u306a\u3069\n        - N\u884cM\u5217TSV\u6587\u5b57\u5217\u306e\u5834\u5408\u3001&quot;\u7cfb\u5217&quot; \u304c (M-1) \u500b\u306e\u7a4d\u307f\u4e0a\u3052\u68d2\u30b0\u30e9\u30d5\u304c\u8868\u793a\u3055\u308c\u307e\u3059\u3002\n        - \u5404\u7cfb\u5217\u306e\u6a2a\u5e45\u306f\u300c\u30b0\u30e9\u30d5\u76ee\u76db\u308a\u306e\u6700\u5927\u5024\uff08B3\uff09\u300d\u3092\u57fa\u6e96\u306b\u7b97\u51fa\u30fb\u63cf\u753b\u3055\u308c\u307e\u3059\u3002\n- \u5165\u529bTSV\u306f\u300c\u3082\u3063\u3068\u3082\u30b7\u30f3\u30d7\u30eb\u306a\u30bf\u30d6\u533a\u5207\u308a\u6587\u5b57\u5217\u300d\u3068\u3057\u3066\u30d1\u30fc\u30b9\u3055\u308c\u307e\u3059\u3002\n- \u5165\u529bTSV\u6587\u5b57\u5217\u306e\u884c\u6570\u3082\u30b1\u30fc\u30b9\u30c7\u30fc\u30bf\u3068\u3057\u3066\u683c\u7d0d\u53ef\u80fd\u3067\u3059\u3002\n#### TSV example\nYYYY-MM\tTanaka\tSato\tSuzuki\tYamada\n2026-01\t610,000\t520,000\t380,000\t450,000\n2026-02\t580,000\t490,000\t410,000\t480,000\n2026-03\t700,000\t600,000\t450,000\t550,000\n2026-04\t550,000\t480,000\t390,000\t420,000\n2026-05\t590,000\t510,000\t420,000\t460,000\n2026-06\t630,000\t550,000\t460,000\t510,000\n2026-07\t680,000\t620,000\t250,000\t280,000\n2026-08\t570,000\t530,000\t230,000\t290,000\n2026-09\t650,000\t310,000\t220,000\t250,000\n2026-10\t560,000\t290,000\t240,000\t270,000\n2026-11\t600,000\t300,000\t250,000\t260,000\n2026-12\t800,000\t720,000\t600,000\t680,000\n### APPENDIX-en\n- Blank lines within the input TSV string are ignored.\n- Please set series colors corresponding to the number of series in the TSV (TSV column count - 1).\n    - (It is fine to set more colors than required)\n    - Example of high-contrast series colors: &quot;#e66,#39f,#f90,#a3c,#6a5,#678,#cc3,#999&quot;.\n    - Example of warm\/cool color gradation: &quot;#c42,#e84,#fb6,#cc3,#6ad,#9cf,#cde,#eef&quot;.\n- Special characters like `&lt;`, `&gt;`, `&amp;` in the TSV string will be automatically XML-escaped to prevent SVG file corruption.\n- You can specify a prefix and suffix for the total value.\n    - To add only a prefix: Set `$,` \u2192 `$1,200,000`\n    - To add only a suffix: Set `, items` \u2192 `150 items`\n    - To add both: Set `Approx. , hours` \u2192 `Approx. 40 hours`\n    - To include a space: Set `$ ,` \u2192 `$ 1,200`\n### APPENDIX-ja\n- \u5165\u529bTSV\u6587\u5b57\u5217\u5185\u306e\u7a7a\u884c\u306f\u7121\u8996\u3055\u308c\u307e\u3059\u3002\n- \u7cfb\u5217\u306e\u8272\u306f\u3001TSV\u5185\u306e\u7cfb\u5217\u306e\u6570\uff08TSV\u5217\u6570 - 1\uff09\u3060\u3051\u30bb\u30c3\u30c8\u3057\u3066\u304f\u3060\u3055\u3044\u3002\uff08\u591a\u304f\u8a2d\u5b9a\u3059\u308b\u5206\u306b\u306f\u69cb\u3044\u307e\u305b\u3093\uff09\n    - \u7cfb\u5217\u306e\u30e1\u30ea\u30cf\u30ea\u3092\u52b9\u304b\u305b\u308b\u4f8b: &quot;#e66,#39f,#f90,#a3c,#6a5,#678,#cc3,#999&quot;\n    - \u5bd2\u8272\u6696\u8272\u3067\u30b0\u30e9\u30c7\u30fc\u30b7\u30e7\u30f3\u4f8b: &quot;#c42,#e84,#fb6,#cc3,#6ad,#9cf,#cde,#eef&quot;\n- TSV\u5185\u306e `&lt;` \u3084 `&amp;` \u3068\u3044\u3063\u305f\u7279\u6b8a\u8a18\u53f7\u306f\u3001SVG\u30d5\u30a1\u30a4\u30eb\u306e\u7834\u640d\u3092\u9632\u3050\u305f\u3081\u306b\u81ea\u52d5\u7684\u306bXML\u30a8\u30b9\u30b1\u30fc\u30d7\u3055\u308c\u307e\u3059\u3002\n- \u5408\u8a08\u5024\u306b\u306f\u63a5\u982d\u8f9e\u30fb\u63a5\u5c3e\u8f9e\u3092\u6307\u5b9a\u3067\u304d\u307e\u3059\u3002\n    - \u524d\u3060\u3051\u306b\u3064\u3051\u305f\u3044\u5834\u5408: `\uffe5,` \u3068\u8a2d\u5b9a \u2192 `\uffe51,200,000`\n    - \u5f8c\u308d\u3060\u3051\u306b\u3064\u3051\u305f\u3044\u5834\u5408: `,\u4ef6` \u3068\u8a2d\u5b9a \u2192 `150\u4ef6`\n    - \u524d\u5f8c\u4e21\u65b9\u306b\u3064\u3051\u305f\u3044\u5834\u5408: `\u7d04,\u6642\u9593` \u3068\u8a2d\u5b9a \u2192 `\u7d0440\u6642\u9593`\n    - \u9593\u306b\u30b9\u30da\u30fc\u30b9\u3092\u5165\u308c\u305f\u3044\u5834\u5408: `$ ,` \u3068\u8a2d\u5b9a \u2192 `$ 1,200`\n*\/\n<\/code><\/pre><\/div>\n<\/div><\/details><\/div>\n<\/div>\n\n\n\n<h3 class=\"wp-block-heading\" style=\"margin-top:var(--wp--preset--spacing--30)\"><span>Download<\/span><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a rel=\"noreferrer noopener\" href=\"https:\/\/drive.google.com\/file\/d\/15_Q1CiRE3m4jhEZCH7ukErNT6OTn9yyJ\/view?usp=drivesdk\" target=\"_blank\">converter-tsv-string-to-svg-file-2026.xml<\/a>\n<ul class=\"wp-block-list\">\n<li>2026-06-17 (C) Questetra, Inc. (MIT License)<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><a href=\"https:\/\/drive.google.com\/file\/d\/1Lx4gQMzc8lK5RxajGo6Iyg5fx9k-o4Me\/view?usp=sharing\">converter-tsv-string-to-svg-file-202606.xml<\/a>\n<ul class=\"wp-block-list\">\n<li>2026-06-21 (C) Questetra, Inc. (MIT License)<\/li>\n\n\n\n<li>Added tooltip (hover popup) functionality<\/li>\n\n\n\n<li>Added logic to automatically generate the SVG standard <code>&lt;title><\/code> tag inside each element (<code>&lt;rect><\/code>) of the stacked bar chart.<\/li>\n\n\n\n<li>When the user hovers the mouse pointer over each color bar, &#8220;Series Name: Formatted Number (e.g., <code>Sato: 520,000 yen<\/code>)&#8221; will pop up, making it easier to visually check detailed breakdown data.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<div class=\"has-small-font-size\" style=\"text-align: right;\"><div style=\"display: inline-block; background: #FBE7DD; text-align: center;\">\n<span class=\"material-icons\">warning<\/span> Freely modifiable JavaScript (ECMAScript) code. No warranty of any kind.<br>\n(Installing <em><strong>Addon Auto-Steps<\/strong><\/em> are available only on the <em><strong><span style=\"color: #1970B9\">Professional<\/span><\/strong><\/em> edition.)\n<\/div><\/div>\n\n\n\n<h3 class=\"wp-block-heading\" style=\"margin-top:var(--wp--preset--spacing--30)\"><span>Notes<\/span><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>A bar chart (SVG file) is automatically generated each time a Case reaches this Automated Step.\n<ul class=\"wp-block-list\">\n<li>From the second row of the input TSV string onward, all fields are parsed as &#8220;numeric strings&#8221;, except for the first column (Column A).\n<ul class=\"wp-block-list\">\n<li>Only the first column (Column A) is considered as the aggregation unit name, such as &#8220;YYYY-MM&#8221; or &#8220;Quarter&#8221;.<\/li>\n\n\n\n<li>If characters other than a &#8220;period (.)&#8221;, a &#8220;minus sign (-)&#8221;, and &#8220;0-9&#8221; exist, the &#8220;stripped string&#8221; is parsed.<\/li>\n\n\n\n<li>Even if commas exist, they are considered thousands separators, and the &#8220;stripped string&#8221; is parsed.<\/li>\n\n\n\n<li>The &#8220;stripped string&#8221; is parsed using <code>parseFloat()<\/code>.<\/li>\n\n\n\n<li>If parsing fails, the value is evaluated as <code>0<\/code>.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>The generated &#8220;SVG file&#8221; will be added to the specified File-type data item.\n<ul class=\"wp-block-list\">\n<li>For an N-row, 2-column TSV string, a simple bar chart is displayed (e.g., &#8220;Monthly Sales&#8221;).<\/li>\n\n\n\n<li>For an N-row, M-column TSV string, a stacked bar chart with (M-1) &#8220;series&#8221; is displayed.<\/li>\n\n\n\n<li>The width of each series is calculated and drawn based on the &#8220;Max Scale Value (B3)&#8221;.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>The input TSV is parsed as the &#8220;simplest tab-separated string&#8221;.<\/li>\n\n\n\n<li>The number of lines in the input TSV string can also be saved as Case Data.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" style=\"margin-top:var(--wp--preset--spacing--30)\"><span>Capture<\/span><\/h3>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6adc6e2056116&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6adc6e2056116\" class=\"wp-block-image aligncenter size-full has-lightbox wp-lightbox-container\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1200\" height=\"628\" data-attachment-id=\"187442\" data-permalink=\"https:\/\/support.questetra.com\/en\/incident\/bug-20260831\/attachment\/converter-tsv-string-to-svg-file-2026-en\/\" data-orig-file=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/06\/converter-tsv-string-to-svg-file-2026-en.png?fit=1200%2C628&amp;ssl=1\" data-orig-size=\"1200,628\" data-comments-opened=\"0\" data-image-title=\"converter-tsv-string-to-svg-file-2026-en\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/06\/converter-tsv-string-to-svg-file-2026-en.png?fit=1024%2C536&amp;ssl=1\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/06\/converter-tsv-string-to-svg-file-2026-en.png?resize=1200%2C628&#038;ssl=1\" alt=\"Converter: #TSV String to #SVG File\" class=\"wp-image-187442\" srcset=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/06\/converter-tsv-string-to-svg-file-2026-en.png?w=1200&amp;ssl=1 1200w, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/06\/converter-tsv-string-to-svg-file-2026-en.png?resize=600%2C315&amp;ssl=1 600w, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/06\/converter-tsv-string-to-svg-file-2026-en.png?resize=1024%2C536&amp;ssl=1 1024w, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/06\/converter-tsv-string-to-svg-file-2026-en.png?resize=768%2C402&amp;ssl=1 768w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6adc6e2056fe6&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6adc6e2056fe6\" class=\"wp-block-image aligncenter size-large has-custom-border is-style-rounded has-lightbox is-style-rounded--1 wp-lightbox-container\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"444\" height=\"630\" data-attachment-id=\"187454\" data-permalink=\"https:\/\/support.questetra.com\/en\/incident\/bug-20260831\/attachment\/converter-tsv-string-to-svg-file-2026-config-en\/\" data-orig-file=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/06\/converter-tsv-string-to-svg-file-2026-config-en.png?fit=898%2C1273&amp;ssl=1\" data-orig-size=\"898,1273\" data-comments-opened=\"0\" data-image-title=\"converter-tsv-string-to-svg-file-2026-config-en\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/06\/converter-tsv-string-to-svg-file-2026-config-en.png?fit=444%2C630&amp;ssl=1\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/06\/converter-tsv-string-to-svg-file-2026-config-en-444x630.png?resize=444%2C630&#038;ssl=1\" alt=\"\" class=\"has-border-color wp-image-187454\" style=\"border-color:#009900;border-width:3px;border-radius:9px\" srcset=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/06\/converter-tsv-string-to-svg-file-2026-config-en.png?resize=444%2C630&amp;ssl=1 444w, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/06\/converter-tsv-string-to-svg-file-2026-config-en.png?resize=222%2C315&amp;ssl=1 222w, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/06\/converter-tsv-string-to-svg-file-2026-config-en.png?resize=768%2C1089&amp;ssl=1 768w, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/06\/converter-tsv-string-to-svg-file-2026-config-en.png?w=898&amp;ssl=1 898w\" sizes=\"auto, (max-width: 444px) 100vw, 444px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large has-custom-border is-style-rounded is-style-rounded--2\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"536\" data-attachment-id=\"187450\" data-permalink=\"https:\/\/support.questetra.com\/en\/incident\/bug-20260831\/attachment\/svgchart-sample1\/\" data-orig-file=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/06\/SvgChart-Sample1.png?fit=1200%2C628&amp;ssl=1\" data-orig-size=\"1200,628\" data-comments-opened=\"0\" data-image-title=\"SvgChart-Sample1\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/06\/SvgChart-Sample1.png?fit=1024%2C536&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/06\/SvgChart-Sample1.png?resize=1024%2C536&#038;ssl=1\" alt=\"\" class=\"has-border-color wp-image-187450\" style=\"border-color:#009900;border-width:3px;border-radius:9px\" srcset=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/06\/SvgChart-Sample1.png?resize=1024%2C536&amp;ssl=1 1024w, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/06\/SvgChart-Sample1.png?resize=600%2C315&amp;ssl=1 600w, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/06\/SvgChart-Sample1.png?resize=768%2C402&amp;ssl=1 768w, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/06\/SvgChart-Sample1.png?w=1200&amp;ssl=1 1200w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large has-custom-border is-style-rounded is-style-rounded--3\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"536\" data-attachment-id=\"187448\" data-permalink=\"https:\/\/support.questetra.com\/en\/incident\/bug-20260831\/attachment\/svgchart-sample2\/\" data-orig-file=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/06\/SvgChart-Sample2.png?fit=1200%2C628&amp;ssl=1\" data-orig-size=\"1200,628\" data-comments-opened=\"0\" data-image-title=\"SvgChart-Sample2\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/06\/SvgChart-Sample2.png?fit=1024%2C536&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/06\/SvgChart-Sample2.png?resize=1024%2C536&#038;ssl=1\" alt=\"\" class=\"has-border-color wp-image-187448\" style=\"border-color:#009900;border-width:3px;border-radius:9px\" srcset=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/06\/SvgChart-Sample2.png?resize=1024%2C536&amp;ssl=1 1024w, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/06\/SvgChart-Sample2.png?resize=600%2C315&amp;ssl=1 600w, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/06\/SvgChart-Sample2.png?resize=768%2C402&amp;ssl=1 768w, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/06\/SvgChart-Sample2.png?w=1200&amp;ssl=1 1200w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large has-custom-border is-style-rounded is-style-rounded--4\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"536\" data-attachment-id=\"187446\" data-permalink=\"https:\/\/support.questetra.com\/en\/incident\/bug-20260831\/attachment\/svgchart-sample3\/\" data-orig-file=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/06\/SvgChart-Sample3.png?fit=1200%2C628&amp;ssl=1\" data-orig-size=\"1200,628\" data-comments-opened=\"0\" data-image-title=\"SvgChart-Sample3\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/06\/SvgChart-Sample3.png?fit=1024%2C536&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/06\/SvgChart-Sample3.png?resize=1024%2C536&#038;ssl=1\" alt=\"\" class=\"has-border-color wp-image-187446\" style=\"border-color:#009900;border-width:3px;border-radius:9px\" srcset=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/06\/SvgChart-Sample3.png?resize=1024%2C536&amp;ssl=1 1024w, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/06\/SvgChart-Sample3.png?resize=600%2C315&amp;ssl=1 600w, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/06\/SvgChart-Sample3.png?resize=768%2C402&amp;ssl=1 768w, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/06\/SvgChart-Sample3.png?w=1200&amp;ssl=1 1200w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" \/><\/figure>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6adc6e2058ea8&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6adc6e2058ea8\" class=\"wp-block-image aligncenter size-large has-lightbox wp-lightbox-container\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"536\" data-attachment-id=\"187588\" data-permalink=\"https:\/\/support.questetra.com\/en\/addons\/converter-tsv-string-to-svg-file-2026\/attachment\/svg-tooltip\/\" data-orig-file=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/06\/svg-tooltip.png?fit=1200%2C628&amp;ssl=1\" data-orig-size=\"1200,628\" data-comments-opened=\"0\" data-image-title=\"svg-tooltip\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/06\/svg-tooltip.png?fit=1024%2C536&amp;ssl=1\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/06\/svg-tooltip.png?resize=1024%2C536&#038;ssl=1\" alt=\"\" class=\"wp-image-187588\" srcset=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/06\/svg-tooltip.png?resize=1024%2C536&amp;ssl=1 1024w, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/06\/svg-tooltip.png?resize=600%2C315&amp;ssl=1 600w, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/06\/svg-tooltip.png?resize=768%2C402&amp;ssl=1 768w, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/06\/svg-tooltip.png?w=1200&amp;ssl=1 1200w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" style=\"margin-top:var(--wp--preset--spacing--30)\"><span>Appendix<\/span><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Blank lines within the input TSV string are ignored.<\/li>\n\n\n\n<li>Please set series colors corresponding to the number of series in the TSV (TSV column count &#8211; 1).\n<ul class=\"wp-block-list\">\n<li>(It is fine to set more colors than required)<\/li>\n\n\n\n<li>Example of high-contrast series colors: &#8220;#e66,#39f,#f90,#a3c,#6a5,#678,#cc3,#999&#8221;.<\/li>\n\n\n\n<li>Example of warm\/cool color gradation: &#8220;#c42,#e84,#fb6,#cc3,#6ad,#9cf,#cde,#eef&#8221;.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Special characters like <code>&lt;<\/code>, <code>&gt;<\/code>, <code>&amp;<\/code> in the TSV string will be automatically XML-escaped to prevent SVG file corruption.<\/li>\n\n\n\n<li>You can specify a prefix and suffix for the total value.\n<ul class=\"wp-block-list\">\n<li>To add only a prefix: Set <code>$,<\/code> \u2192 <code>$1,200,000<\/code><\/li>\n\n\n\n<li>To add only a suffix: Set <code>, items<\/code> \u2192 <code>150 items<\/code><\/li>\n\n\n\n<li>To add both: Set <code>Approx. , hours<\/code> \u2192 <code>Approx. 40 hours<\/code><\/li>\n\n\n\n<li>To include a space: Set <code>$ ,<\/code> \u2192 <code>$ 1,200<\/code><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" style=\"margin-top:var(--wp--preset--spacing--30)\"><span>See also<\/span><\/h3>\n\n\n\n<figure class=\"wp-block-embed is-type-wp-embed is-provider-questetra-support wp-block-embed-questetra-support\"><div class=\"wp-block-embed__wrapper\">\n<blockquote class=\"wp-embedded-content\" data-secret=\"PRLwrbJU4S\"><a href=\"https:\/\/support.questetra.com\/en\/addons\/converter-tsv-string-to-markdown-chart-string-2026\/\">Converter: #TSV String to #MdChart String<\/a><\/blockquote><iframe loading=\"lazy\" class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; visibility: hidden;\" title=\"\u201cConverter: #TSV String to #MdChart String\u201d \u2014 Questetra Support\" src=\"https:\/\/support.questetra.com\/en\/addons\/converter-tsv-string-to-markdown-chart-string-2026\/embed\/#?secret=Qiw4bm2XPk#?secret=PRLwrbJU4S\" data-secret=\"PRLwrbJU4S\" width=\"500\" height=\"282\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe>\n<\/div><\/figure>\n\n\n\n<figure class=\"wp-block-embed is-type-wp-embed is-provider-questetra-support wp-block-embed-questetra-support\"><div class=\"wp-block-embed__wrapper\">\n<blockquote class=\"wp-embedded-content\" data-secret=\"MmGAATijkr\"><a href=\"https:\/\/support.questetra.com\/en\/addons\/tsv-string-create-summary-table-for-numeric-column-2021\/\">TSV String, Create Summary Table for Numeric Column<\/a><\/blockquote><iframe loading=\"lazy\" class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; visibility: hidden;\" title=\"\u201cTSV String, Create Summary Table for Numeric Column\u201d \u2014 Questetra Support\" src=\"https:\/\/support.questetra.com\/en\/addons\/tsv-string-create-summary-table-for-numeric-column-2021\/embed\/#?secret=VQ3YH0V0ZE#?secret=MmGAATijkr\" data-secret=\"MmGAATijkr\" width=\"500\" height=\"282\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe>\n<\/div><\/figure>\n\n\n\n<figure class=\"wp-block-embed is-type-wp-embed is-provider-questetra-support wp-block-embed-questetra-support\"><div class=\"wp-block-embed__wrapper\">\n<blockquote class=\"wp-embedded-content\" data-secret=\"blc4kLjMUF\"><a href=\"https:\/\/support.questetra.com\/en\/addons\/tsv-string-create-cross-table-for-numeric-column-2021\/\">TSV String, Create Cross Table for Numeric Column<\/a><\/blockquote><iframe loading=\"lazy\" class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; visibility: hidden;\" title=\"\u201cTSV String, Create Cross Table for Numeric Column\u201d \u2014 Questetra Support\" src=\"https:\/\/support.questetra.com\/en\/addons\/tsv-string-create-cross-table-for-numeric-column-2021\/embed\/#?secret=qHxIv7Jj9m#?secret=blc4kLjMUF\" data-secret=\"blc4kLjMUF\" width=\"500\" height=\"282\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe>\n<\/div><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>Converts a numeric TSV string into a stacked bar chart SVG file. The first TSV column is used as the aggregation unit, such as &#8220;YYYYMM&#8221;, and the first row as data series, such as  &#8220;Sales Representative&#8221; or &#8220;Client&#8221;.<\/p>\n","protected":false},"author":2,"featured_media":187442,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_coblocks_attr":"","_coblocks_dimensions":"","_coblocks_responsive_height":"","_coblocks_accordion_ie_support":"","_uag_custom_page_level_css":"","advanced_seo_description":"","jetpack_seo_html_title":"","jetpack_seo_noindex":false,"jetpack_seo_schema_type":"","_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_wpcom_ai_launchpad_first_post":false,"_jetpack_hide_featured_image":false,"_jetpack_featured_image_duplicate_dismissed":0,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"{title}\n\n{excerpt}\n\n{url}","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"_wpas_customize_per_network":false,"jetpack_post_was_ever_published":false},"categories":[168],"tags":[377,389],"faq_section":[],"class_list":["post-187457","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-addons","tag-newqfile","tag-tsv-csv"],"jetpack_publicize_connections":[],"uagb_featured_image_src":{"full":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/06\/converter-tsv-string-to-svg-file-2026-en.png?fit=1200%2C628&ssl=1",1200,628,false],"thumbnail":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/06\/converter-tsv-string-to-svg-file-2026-en.png?resize=440%2C440&ssl=1",440,440,true],"medium":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/06\/converter-tsv-string-to-svg-file-2026-en.png?fit=600%2C315&ssl=1",600,315,true],"medium_large":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/06\/converter-tsv-string-to-svg-file-2026-en.png?fit=768%2C402&ssl=1",768,402,true],"large":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/06\/converter-tsv-string-to-svg-file-2026-en.png?fit=1024%2C536&ssl=1",1024,536,true],"1536x1536":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/06\/converter-tsv-string-to-svg-file-2026-en.png?fit=1200%2C628&ssl=1",1200,628,true],"2048x2048":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/06\/converter-tsv-string-to-svg-file-2026-en.png?fit=1200%2C628&ssl=1",1200,628,true],"newspack-article-block-landscape-large":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/06\/converter-tsv-string-to-svg-file-2026-en.png?resize=1200%2C628&ssl=1",1200,628,true],"newspack-article-block-portrait-large":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/06\/converter-tsv-string-to-svg-file-2026-en.png?resize=900%2C628&ssl=1",900,628,true],"newspack-article-block-square-large":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/06\/converter-tsv-string-to-svg-file-2026-en.png?resize=1200%2C628&ssl=1",1200,628,true],"newspack-article-block-landscape-medium":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/06\/converter-tsv-string-to-svg-file-2026-en.png?resize=800%2C600&ssl=1",800,600,true],"newspack-article-block-portrait-medium":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/06\/converter-tsv-string-to-svg-file-2026-en.png?resize=600%2C628&ssl=1",600,628,true],"newspack-article-block-square-medium":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/06\/converter-tsv-string-to-svg-file-2026-en.png?resize=800%2C628&ssl=1",800,628,true],"newspack-article-block-landscape-intermediate":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/06\/converter-tsv-string-to-svg-file-2026-en.png?resize=600%2C450&ssl=1",600,450,true],"newspack-article-block-portrait-intermediate":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/06\/converter-tsv-string-to-svg-file-2026-en.png?resize=450%2C600&ssl=1",450,600,true],"newspack-article-block-square-intermediate":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/06\/converter-tsv-string-to-svg-file-2026-en.png?resize=600%2C600&ssl=1",600,600,true],"newspack-article-block-landscape-small":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/06\/converter-tsv-string-to-svg-file-2026-en.png?resize=400%2C300&ssl=1",400,300,true],"newspack-article-block-portrait-small":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/06\/converter-tsv-string-to-svg-file-2026-en.png?resize=300%2C400&ssl=1",300,400,true],"newspack-article-block-square-small":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/06\/converter-tsv-string-to-svg-file-2026-en.png?resize=400%2C400&ssl=1",400,400,true],"newspack-article-block-landscape-tiny":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/06\/converter-tsv-string-to-svg-file-2026-en.png?resize=200%2C150&ssl=1",200,150,true],"newspack-article-block-portrait-tiny":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/06\/converter-tsv-string-to-svg-file-2026-en.png?resize=150%2C200&ssl=1",150,200,true],"newspack-article-block-square-tiny":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/06\/converter-tsv-string-to-svg-file-2026-en.png?resize=200%2C200&ssl=1",200,200,true],"newspack-article-block-uncropped":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/06\/converter-tsv-string-to-svg-file-2026-en.png?fit=1200%2C628&ssl=1",1200,628,true]},"uagb_author_info":{"display_name":"IMAMURA, Genichi","author_link":"https:\/\/support.questetra.com\/en\/author\/imamuragenichi\/"},"uagb_comment_info":0,"uagb_excerpt":"Converts a numeric TSV string into a stacked bar chart SVG file. The first TSV column is used as the aggregation unit, such as \"YYYYMM\", and the first row as data series, such as \"Sales Representative\" or \"Client\".","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p9DiIh-MLv","jetpack-related-posts":[{"id":70808,"url":"https:\/\/support.questetra.com\/en\/addons\/journaltsv-generator\/","url_meta":{"origin":187457,"position":0},"title":"Journal Slip TSV from Invoice Data","author":"Hirotaka NISHI","date":"2018-11-14","format":false,"excerpt":"Generate transfer slip TSV (tab-separated-values) with sales amount, sales date, due date. It supports cases where add a sales collectively or divided into several months or mixture of those. In order to generate a file for the accounting system, you need to place a converter such as \"TSV to Excel-CSV\u2026","rel":"","context":"In &quot;Add-ons&quot;","block_context":{"text":"Add-ons","link":"https:\/\/support.questetra.com\/en\/category\/addons\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2018\/11\/journal-tsv-generator-header.png?fit=1200%2C675&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2018\/11\/journal-tsv-generator-header.png?fit=1200%2C675&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2018\/11\/journal-tsv-generator-header.png?fit=1200%2C675&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2018\/11\/journal-tsv-generator-header.png?fit=1200%2C675&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2018\/11\/journal-tsv-generator-header.png?fit=1200%2C675&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":69088,"url":"https:\/\/support.questetra.com\/en\/addons\/converter-tsvtoexcelcsv\/","url_meta":{"origin":187457,"position":1},"title":"Converter (TSV to Excel-CSV File)","author":"Hirotaka NISHI","date":"2018-11-14","format":false,"excerpt":"A tab-delimited text (TSV) stored in a String type data item is saved as an Excel-compatible CSV file in a File type Data Item.","rel":"","context":"In &quot;Add-ons&quot;","block_context":{"text":"Add-ons","link":"https:\/\/support.questetra.com\/en\/category\/addons\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2018\/11\/converter-tsv-excel-header.png?fit=1200%2C675&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2018\/11\/converter-tsv-excel-header.png?fit=1200%2C675&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2018\/11\/converter-tsv-excel-header.png?fit=1200%2C675&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2018\/11\/converter-tsv-excel-header.png?fit=1200%2C675&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2018\/11\/converter-tsv-excel-header.png?fit=1200%2C675&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":82453,"url":"https:\/\/support.questetra.com\/en\/bpmn-icons\/converter-excelcsv-to-table\/","url_meta":{"origin":187457,"position":2},"title":"Converter (TSV File to Table type data)","author":"Shiho Tatsumi","date":"2024-08-01","format":false,"excerpt":"This item overwrites the value of a Table type data item with a contents of an Excel compatible CSV file (TSV UTF-16 LE with BOM) stored in a File type data item.","rel":"","context":"In &quot;BPMN Icons&quot;","block_context":{"text":"BPMN Icons","link":"https:\/\/support.questetra.com\/en\/category\/bpmn-icons\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2021\/01\/bpmn-icon-service-task-converter.png?fit=1200%2C675&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2021\/01\/bpmn-icon-service-task-converter.png?fit=1200%2C675&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2021\/01\/bpmn-icon-service-task-converter.png?fit=1200%2C675&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2021\/01\/bpmn-icon-service-task-converter.png?fit=1200%2C675&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2021\/01\/bpmn-icon-service-task-converter.png?fit=1200%2C675&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":69682,"url":"https:\/\/support.questetra.com\/en\/bpmn-icons\/converter-tabletoexcelcsv\/","url_meta":{"origin":187457,"position":3},"title":"Converter (Table type data to Excel-CSV File)","author":"Shiho Tatsumi","date":"2024-07-05","format":false,"excerpt":"This item stores the values in a Table type data item into a File type data item as an Excel compatible CSV. The file is added and does not affect existing files.","rel":"","context":"In &quot;BPMN Icons&quot;","block_context":{"text":"BPMN Icons","link":"https:\/\/support.questetra.com\/en\/category\/bpmn-icons\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2021\/01\/bpmn-icon-service-task-converter.png?fit=1200%2C675&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2021\/01\/bpmn-icon-service-task-converter.png?fit=1200%2C675&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2021\/01\/bpmn-icon-service-task-converter.png?fit=1200%2C675&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2021\/01\/bpmn-icon-service-task-converter.png?fit=1200%2C675&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2021\/01\/bpmn-icon-service-task-converter.png?fit=1200%2C675&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":79781,"url":"https:\/\/support.questetra.com\/en\/data-items\/table-type\/","url_meta":{"origin":187457,"position":4},"title":"Table-Type","author":"Peter Glover","date":"2021-01-22","format":false,"excerpt":"Displays a table that can use the String, Numeric, Select or Date formats.","rel":"","context":"In &quot;Data Items&quot;","block_context":{"text":"Data Items","link":"https:\/\/support.questetra.com\/en\/category\/data-items\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2019\/09\/Table.png?fit=1200%2C675&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2019\/09\/Table.png?fit=1200%2C675&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2019\/09\/Table.png?fit=1200%2C675&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2019\/09\/Table.png?fit=1200%2C675&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2019\/09\/Table.png?fit=1200%2C675&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":76781,"url":"https:\/\/support.questetra.com\/en\/developer-blog\/synchronize-users-chapter3\/","url_meta":{"origin":187457,"position":5},"title":"Synchronizing User Information in QBPMS with Local Data (Organizational Affiliation Chapter)","author":"Hirotaka NISHI","date":"2021-01-18","format":false,"excerpt":"Synchronize user information on Questetra BPM Suite with local data. In the Organizational Affiliation Chapter, we introduce you a Java program that synchronizes affiliation information such as \"which organization the user is affiliated to\".","rel":"","context":"In &quot;Questetra Developers Blog&quot;","block_context":{"text":"Questetra Developers Blog","link":"https:\/\/support.questetra.com\/en\/category\/developer-blog\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2021\/01\/sync-with-local-data-1200x675-1.png?fit=1200%2C675&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2021\/01\/sync-with-local-data-1200x675-1.png?fit=1200%2C675&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2021\/01\/sync-with-local-data-1200x675-1.png?fit=1200%2C675&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2021\/01\/sync-with-local-data-1200x675-1.png?fit=1200%2C675&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2021\/01\/sync-with-local-data-1200x675-1.png?fit=1200%2C675&ssl=1&resize=1050%2C600 3x"},"classes":[]}],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/06\/converter-tsv-string-to-svg-file-2026-en.png?fit=1200%2C628&ssl=1","_links":{"self":[{"href":"https:\/\/support.questetra.com\/en\/wp-json\/wp\/v2\/posts\/187457","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/support.questetra.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/support.questetra.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/support.questetra.com\/en\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/support.questetra.com\/en\/wp-json\/wp\/v2\/comments?post=187457"}],"version-history":[{"count":9,"href":"https:\/\/support.questetra.com\/en\/wp-json\/wp\/v2\/posts\/187457\/revisions"}],"predecessor-version":[{"id":187630,"href":"https:\/\/support.questetra.com\/en\/wp-json\/wp\/v2\/posts\/187457\/revisions\/187630"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/support.questetra.com\/en\/wp-json\/wp\/v2\/media\/187442"}],"wp:attachment":[{"href":"https:\/\/support.questetra.com\/en\/wp-json\/wp\/v2\/media?parent=187457"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/support.questetra.com\/en\/wp-json\/wp\/v2\/categories?post=187457"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/support.questetra.com\/en\/wp-json\/wp\/v2\/tags?post=187457"},{"taxonomy":"faq_section","embeddable":true,"href":"https:\/\/support.questetra.com\/en\/wp-json\/wp\/v2\/faq_section?post=187457"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}