{"id":50316,"date":"2023-04-07T16:02:54","date_gmt":"2023-04-07T15:02:54","guid":{"rendered":"https:\/\/ekiwi-blog.de\/50316\/vba-excel-macro-save-spreadsheet-as-csv-file\/"},"modified":"2023-04-07T16:12:03","modified_gmt":"2023-04-07T15:12:03","slug":"vba-excel-macro-save-spreadsheet-as-csv-file","status":"publish","type":"post","link":"https:\/\/ekiwi-blog.de\/en\/50316\/vba-excel-macro-save-spreadsheet-as-csv-file\/","title":{"rendered":"VBA Excel Macro: Save spreadsheet as CSV file"},"content":{"rendered":"<p><abbr title=\"Visual Basic for Application\">VBA<\/abbr> is excellently suited to automate certain recurring tasks in the area of Microsoft Office. For example, you may want to save the data of an Excel file or a spreadsheet as a CSV file or simply export it as a CSV for further processing. There are several options here, depending on your needs and application.<\/p>\n<p>The code examples shown below must of course be adapted to the individual application. There may also be different requirements for formatting in the CSV file and the separator. If necessary, the values must also be placed in inverted commas if the separator, such as a &#8220;<em>comma<\/em>&#8220;, can also occur within the values.<\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_82_2 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of content<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/ekiwi-blog.de\/en\/50316\/vba-excel-macro-save-spreadsheet-as-csv-file\/#Example_Excel_file\" >Example Excel file<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/ekiwi-blog.de\/en\/50316\/vba-excel-macro-save-spreadsheet-as-csv-file\/#Save_worksheet_as_CSV_file\" >Save worksheet as CSV file<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/ekiwi-blog.de\/en\/50316\/vba-excel-macro-save-spreadsheet-as-csv-file\/#Export_only_certain_range_of_a_spreadsheet_as_CSV\" >Export only certain range of a spreadsheet as CSV<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/ekiwi-blog.de\/en\/50316\/vba-excel-macro-save-spreadsheet-as-csv-file\/#Compile_and_output_CSV_data_manually\" >Compile and output CSV data manually<\/a><\/li><\/ul><\/nav><\/div>\n<h2><span class=\"ez-toc-section\" id=\"Example_Excel_file\"><\/span>Example Excel file<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>The following code examples are based on a small Excel file that contains various formatted data on products and their prices. This also shows what can happen with the formatting when exporting to a <em>*.csv file<\/em>.<\/p>\n<figure id=\"attachment_50293\" aria-describedby=\"caption-attachment-50293\" style=\"width: 614px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-50293\" src=\"https:\/\/ekiwi-blog.de\/wp-content\/uploads\/2023\/04\/excel-export-csv-file.jpg\" alt=\"Example Excel spreadsheet with product data to be saved to a CSV file\" width=\"614\" height=\"244\" srcset=\"https:\/\/ekiwi-blog.de\/wp-content\/uploads\/2023\/04\/excel-export-csv-file.jpg 614w, https:\/\/ekiwi-blog.de\/wp-content\/uploads\/2023\/04\/excel-export-csv-file-300x119.jpg 300w\" sizes=\"auto, (max-width: 614px) 100vw, 614px\" \/><figcaption id=\"caption-attachment-50293\" class=\"wp-caption-text\">Example Excel spreadsheet with product data<\/figcaption><\/figure>\n<p>In all code examples an error handling (<code><em>Application.DisplayAlerts<\/em><\/code>) is inserted to suppress error messages during saving. However, you can also omit the code.<\/p>\n<p>The CSV file is <a href=\"https:\/\/ekiwi-blog.de\/en\/60765\/vba-query-memory-path-before-saving\/\" title=\"VBA: Query save path before (Save as dialog)\">saved under the same path<\/a> as the Excel file (fileNameCSV = ThisWorkbook.Path<\/code>). However, this can be adapted as desired.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Save_worksheet_as_CSV_file\"><\/span>Save worksheet as CSV file<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>The following <a href=\"https:\/\/ekiwi-blog.de\/en\/51740\/vba-save-e-mail-attachment\/\" title=\"VBA Save e-mail attachment\">VBA code saves<\/a> an entire spreadsheet as a new CSV file. This is convenient and makes the VBA code relatively slim.<\/p>\n<h3>Code<\/h3>\n<p>In our example, the spreadsheet is called &#8220;<em>ProductList<\/em>&#8220;. Therefore, we activate it with this name before the export.<\/p>\n<p>The main function in this case is fulfilled by the method <em><strong>SaveAs<\/strong><\/em>. With the parameter <em><strong>FileFormat:=xlCSV<\/strong><\/em> we specify that it should be saved as CSV. In this case, the parameter <em><strong>Local<\/strong><\/em> is also important. If you do not set this parameter, the default value is <em>false<\/em> and the language and country settings of the VBA editor are used, which are <em>English\/USA<\/em> by default. This can lead to the fact that if the currency is formatted as Euro, the CSV file will contain dollars.<\/p>\n<pre><code><span style=\"color: #0000ff;\">Sub<\/span> exportWorksheetToCSV()\r\n    \r\n    <span style=\"color: #0000ff;\">Dim<\/span> fileNameCSV <span style=\"color: #0000ff;\">As String<\/span>.\r\n    <span style=\"color: #0000ff;\">Dim<\/span> myWorksheet <span style=\"color: #0000ff;\">As<\/span> Workbook\r\n    \r\n    <span style=\"color: #339966;\">'use this to suppress error messages while running the macro<\/span>.\r\n    Application.DisplayAlerts = <span style=\"color: #0000ff;\">False<\/span>.\r\n    <span style=\"color: #0000ff;\">On Error GoTo<\/span> errorhandling\r\n    \r\n    <span style=\"color: #339966;\">'define path and filename of csv file here<\/span>\r\n    fileNameCSV = ThisWorkbook.Path &amp; \"\\\" &amp; \"products.csv\"\r\n\r\n    <span style=\"color: #339966;\">'activate the regarding worksheet<\/span>.\r\n    ThisWorkbook.Sheets(\"ProductList\").Activate\r\n    ActiveSheet.Copy\r\n    <span style=\"color: #0000ff;\">Set<\/span> myWorksheet = ActiveWorkbook\r\n<span style=\"color: #339966;\"> 'use parameter Local to get local settings of excel, defaulf value is false\r\n    '(VBA local setting is used that by default is English (USA)<\/span>\r\n    myWorksheet.SaveAs Filename:=fileNameCSV, FileFormat:=xlCSV, CreateBackup:=False, Local:=True\r\n    myWorksheet.Close\r\n    \r\nerrorhandling:\r\n    Application.DisplayAlerts = <span style=\"color: #0000ff;\">True<\/span>.\r\n<span style=\"color: #0000ff;\">End Sub<\/span><\/code><\/pre>\n<h3>Result<\/h3>\n<p>In the images below, we see that when the CSV data is saved, it tries to keep the formatting. However, in this case <a href=\"https:\/\/ekiwi-blog.de\/en\/18552\/vmware-workstation-access-to-the-local-network-with-dhcp\/\" title=\"Vmware Workstation access to the local network with DHCP\">the <strong>Local<\/a> parameter was set to False<\/strong>. This leads to the euro characters suddenly becoming dollar characters in the CSV file.<\/p>\n<figure id=\"attachment_50309\" aria-describedby=\"caption-attachment-50309\" style=\"width: 510px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-50309\" src=\"https:\/\/ekiwi-blog.de\/wp-content\/uploads\/2023\/04\/excel-saved-worksheet-to-csv-parameter-local.jpg\" alt=\"CSV file with Excel data: the whole spreadsheet was exported with parameter Local=False\" width=\"510\" height=\"195\" srcset=\"https:\/\/ekiwi-blog.de\/wp-content\/uploads\/2023\/04\/excel-saved-worksheet-to-csv-parameter-local.jpg 510w, https:\/\/ekiwi-blog.de\/wp-content\/uploads\/2023\/04\/excel-saved-worksheet-to-csv-parameter-local-300x115.jpg 300w\" sizes=\"auto, (max-width: 510px) 100vw, 510px\" \/><figcaption id=\"caption-attachment-50309\" class=\"wp-caption-text\">spreadsheet exported to CSV file with parameter Local=False<\/figcaption><\/figure>\n<p>If you set <strong>Local to True<\/strong> then you get the following output. You can see that the dollar sign has disappeared. Instead, &lt;0x80&gt; is now output, which according to the <a href=\"https:\/\/www.ascii-code.com\/\" target=\"_blank\" rel=\"noopener\">ASCII table<\/a> corresponds to the <strong>symbol<\/strong>.<\/p>\n<figure id=\"attachment_50297\" aria-describedby=\"caption-attachment-50297\" style=\"width: 600px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-50297\" src=\"https:\/\/ekiwi-blog.de\/wp-content\/uploads\/2023\/04\/excel-saved-worksheet-to-csv.jpg\" alt=\"CSV file with Excel data: the whole spreadsheet has been exported\" width=\"600\" height=\"216\" srcset=\"https:\/\/ekiwi-blog.de\/wp-content\/uploads\/2023\/04\/excel-saved-worksheet-to-csv.jpg 600w, https:\/\/ekiwi-blog.de\/wp-content\/uploads\/2023\/04\/excel-saved-worksheet-to-csv-300x108.jpg 300w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><figcaption id=\"caption-attachment-50297\" class=\"wp-caption-text\">spreadsheet exported to CSV file with Local=True parameter<\/figcaption><\/figure>\n<h2><span class=\"ez-toc-section\" id=\"Export_only_certain_range_of_a_spreadsheet_as_CSV\"><\/span>Export only certain range of a spreadsheet as CSV<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>This variant is very similar to the previous one except that instead of saving the complete spreadsheet, you only save a certain range (&#8220;<em>Range<\/em>&#8220;) as CSV. This allows you to determine more precisely what is exported and what is excluded.<\/p>\n<h3>Code<\/h3>\n<p>The range is defined via the variable <em>myRange<\/em>. Then copy the content of <em>myRange<\/em> into a new spreadsheet created by VBA. The rest is then as in the previous example simply saving the new spreadsheet.<\/p>\n<pre><code><span style=\"color: #0000ff;\">Sub<\/span> exportRangeToCSV()\r\n    \r\n    <span style=\"color: #0000ff;\">Dim<\/span> fileNameCSV <span style=\"color: #0000ff;\">As String<\/span>.\r\n    <span style=\"color: #0000ff;\">Dim<\/span> myWorkbook <span style=\"color: #0000ff;\">As<\/span> Workbook\r\n    <span style=\"color: #0000ff;\">Dim<\/span> myRange <span style=\"color: #0000ff;\">As<\/span> Range\r\n    \r\n    <span style=\"color: #339966;\">'use this to suppress error messages during running the macro<\/span>\r\n    Application.DisplayAlerts = <span style=\"color: #0000ff;\">False<\/span>.\r\n    <span style=\"color: #0000ff;\">On Error GoTo<\/span> errorhandling\r\n    \r\n    <span style=\"color: #339966;\">'define path and filename of csv file here<\/span>\r\n    fileNameCSV = ThisWorkbook.Path &amp; \"\\\" &amp; \"products_range.csv\"\r\n    <span style=\"color: #339966;\">'define and copy range to new worksheet<\/span>.\r\n    <span style=\"color: #0000ff;\">Set<\/span> myRange = Range(\"A1:E5\")\r\n    myRange.Copy\r\n    \r\n    <span style=\"color: #0000ff;\">Set<\/span> myWorkbook = Application.Workbooks.Add(1)\r\n    myWorkbook.Sheets(1).Range(\"A1\").PasteSpecial xlPasteValues\r\n<span style=\"color: #339966;\"> 'use parameter Local to get local settings of excel, defaulf value is false\r\n    '(VBA local setting is used that by default is English (USA)<\/span>\r\n    myWorkbook.SaveAs Filename:=fileNameCSV, FileFormat:=xlCSV, CreateBackup:=False, Local:=True\r\n    myWorkbook.Close\r\n    \r\nerrorhandling:\r\n    Application.DisplayAlerts = <span style=\"color: #0000ff;\">True<\/span>.\r\n<span style=\"color: #0000ff;\">End Sub<\/span><\/code><\/pre>\n<h3>Result<\/h3>\n<p>However, the result looks a little different. By copying the range into a new spreadsheet, the formatting is lost. That&#8217;s why you don&#8217;t see any currency symbols or percent signs as output here, but only the raw values.<\/p>\n<figure id=\"attachment_50301\" aria-describedby=\"caption-attachment-50301\" style=\"width: 534px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-50301\" src=\"https:\/\/ekiwi-blog.de\/wp-content\/uploads\/2023\/04\/excel-export-range-as-csv.jpg\" alt=\"Range of a spreadsheet was exported to CSV\" width=\"534\" height=\"176\" srcset=\"https:\/\/ekiwi-blog.de\/wp-content\/uploads\/2023\/04\/excel-export-range-as-csv.jpg 534w, https:\/\/ekiwi-blog.de\/wp-content\/uploads\/2023\/04\/excel-export-range-as-csv-300x99.jpg 300w\" sizes=\"auto, (max-width: 534px) 100vw, 534px\" \/><figcaption id=\"caption-attachment-50301\" class=\"wp-caption-text\">CSV data of an Excel range<\/figcaption><\/figure>\n<h2><span class=\"ez-toc-section\" id=\"Compile_and_output_CSV_data_manually\"><\/span>Compile and output CSV data manually<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>In the following code variant, the CSV data is first compiled manually in a string variable using For loops and then saved to a file. This method offers the greatest flexibility because, on the one hand, you can select exactly the Excel fields that are to be exported and, on the other hand, you can format the values exactly as you need them later in the CSV by inserting additional code. For example, you can decide yourself whether you want to export a currency sign or a percentage sign or whether you only want to export raw values.<\/p>\n<p>In this variant, you can also define the <strong>separation sign<\/strong> yourself.<\/p>\n<h3>Code<\/h3>\n<pre><code><span style=\"color: #0000ff;\">Sub<\/span> exportRangeManuallyToCSV()\r\n    <span style=\"color: #0000ff;\">Dim<\/span> FSO <span style=\"color: #0000ff;\">As New<\/span> FileSystemObject <span style=\"color: #339966;\">' need to set a reference to the VB \"Microsoft Scripting runtime\" script run-time library.<\/span>\r\n    <span style=\"color: #0000ff;\">Dim<\/span> fileNameCSV <span style=\"color: #0000ff;\">As<\/span> String\r\n    <span style=\"color: #0000ff;\">Dim<\/span> myWorkbook <span style=\"color: #0000ff;\">As<\/span> Workbook\r\n    <span style=\"color: #0000ff;\">Dim<\/span> myRange <span style=\"color: #0000ff;\">As<\/span> Range\r\n    <span style=\"color: #0000ff;\">Dim<\/span> rowNum <span style=\"color: #0000ff;\">As Integer<\/span>\r\n    <span style=\"color: #0000ff;\">Dim<\/span> colNum <span style=\"color: #0000ff;\">As Integer<\/span>\r\n    <span style=\"color: #0000ff;\">Dim<\/span> csvText <span style=\"color: #0000ff;\">As String<\/span>.\r\n    \r\n    \r\n    <span style=\"color: #339966;\">'use this to suppress error messages while running the macro<\/span>.\r\n    Application.DisplayAlerts = <span style=\"color: #0000ff;\">False<\/span>.\r\n    <span style=\"color: #0000ff;\">On Error GoTo<\/span> errorhandling\r\n    \r\n    <span style=\"color: #339966;\">'define path and filename of csv file here<\/span>\r\n    fileNameCSV = ThisWorkbook.Path &amp; \"\\\" &amp; \"products_range_manuelly.csv\"\r\n    <span style=\"color: #339966;\">'define and copy range to new worksheet<\/span>.\r\n    <span style=\"color: #0000ff;\">Set<\/span> myRange = Range(\"A1:E5\")\r\n    rowNum = myRange.Rows.Count\r\n    colNum = myRange.Columns.Count\r\n    csvText = \"\"\r\n    \r\n    <span style=\"color: #0000ff;\">For<\/span> i = 1 <span style=\"color: #0000ff;\">To<\/span> rowNum\r\n        <span style=\"color: #0000ff;\">For<\/span> j = 1 <span style=\"color: #0000ff;\">To<\/span> colNum\r\n            csvText = csvText &amp; Chr(34) &amp; myRange(i, j).Value &amp; Chr(34) &amp; Chr(59)\r\n        <span style=\"color: #0000ff;\">Next<\/span>.\r\n        <span style=\"color: #339966;\">'remove last separator sign<\/span>.\r\n        csvText = Left(csvText, Len(csvText) - 1)\r\n        csvText = csvText &amp; vbCrLf\r\n    <span style=\"color: #0000ff;\">Next<\/span>\r\n    \r\n    <span style=\"color: #0000ff;\">Set<\/span> FSO = CreateObject(\"Scripting.FileSystemObject\")\r\n    <span style=\"color: #0000ff;\">Set<\/span> FileToCreate = FSO.CreateTextFile(fileNameCSV)\r\n    FileToCreate.Write csvText\r\n    FileToCreate.Close\r\n    \r\nerrorhandling:\r\n    Application.DisplayAlerts = <span style=\"color: #0000ff;\">True<\/span>.\r\n<span style=\"color: #0000ff;\">End Sub<\/span><\/code><\/pre>\n<p>With this code, one goes through the desired Excel range (variable <em>myRange<\/em>) column by column and row by row. Via <em>Chr(34)<\/em> the Excel values of a cell are put in inverted commas. <em>Chr(59)<\/em> is the separation character, in this case a semicolon.<\/p>\n<p>Putting them in quotes can be important if the values contain the same character as the separation character.<\/p>\n<h3>Result<\/h3>\n<p>If you then run this <a href=\"https:\/\/ekiwi-blog.de\/en\/49256\/vba-macro-automatically-add-a-file-attachment-to-an-e-mail-message\/\" title=\"VBA macro: Automatically add a file attachment to an e-mail message\">VBA macro<\/a>, you get the following CSV data.<\/p>\n<figure id=\"attachment_50305\" aria-describedby=\"caption-attachment-50305\" style=\"width: 583px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-50305\" src=\"https:\/\/ekiwi-blog.de\/wp-content\/uploads\/2023\/04\/save-excel-values-to-formatted-csv.jpg\" alt=\"Values of the Excel fields were written manually into a CSV file\" width=\"583\" height=\"177\" srcset=\"https:\/\/ekiwi-blog.de\/wp-content\/uploads\/2023\/04\/save-excel-values-to-formatted-csv.jpg 583w, https:\/\/ekiwi-blog.de\/wp-content\/uploads\/2023\/04\/save-excel-values-to-formatted-csv-300x91.jpg 300w\" sizes=\"auto, (max-width: 583px) 100vw, 583px\" \/><figcaption id=\"caption-attachment-50305\" class=\"wp-caption-text\">Manually created CSV data<\/figcaption><\/figure>\n<p>Since you only access the value property of the respective Excel cell, you only have the raw values here, i.e. without currency or percentage formatting. However, you have the option of specifying in the code which formatting is to be output by adjusting the string <em>csvText<\/em> accordingly.<\/p>","protected":false},"excerpt":{"rendered":"<p>VBA is excellently suited to automate certain recurring tasks in the area of Microsoft Office. For example, you may want<\/p>\n","protected":false},"author":2,"featured_media":13630,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1555],"tags":[1855,1857,1858,1861,2715,1862],"class_list":["post-50316","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-software-en","tag-excel-en-2","tag-microsoft-en-2","tag-microsoft-office-en-2","tag-vba-en-2","tag-vba-code-en","tag-visual-basic-for-application-en-2"],"_links":{"self":[{"href":"https:\/\/ekiwi-blog.de\/en\/wp-json\/wp\/v2\/posts\/50316","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ekiwi-blog.de\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ekiwi-blog.de\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ekiwi-blog.de\/en\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/ekiwi-blog.de\/en\/wp-json\/wp\/v2\/comments?post=50316"}],"version-history":[{"count":0,"href":"https:\/\/ekiwi-blog.de\/en\/wp-json\/wp\/v2\/posts\/50316\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ekiwi-blog.de\/en\/wp-json\/wp\/v2\/media\/13630"}],"wp:attachment":[{"href":"https:\/\/ekiwi-blog.de\/en\/wp-json\/wp\/v2\/media?parent=50316"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ekiwi-blog.de\/en\/wp-json\/wp\/v2\/categories?post=50316"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ekiwi-blog.de\/en\/wp-json\/wp\/v2\/tags?post=50316"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}