Parsing HTML Table

Overview

Parsing HTML tables feature allows you to load data from HTML table into AnyChart, it is provided by the parseHtmlTable() method. This method is a part of Data Adapter script and this script has to be plugged to make this method available:

<!-- Include the data adapter --> <script src="https://cdn.anychart.com/releases/8.14.0/js/anychart-data-adapter.min.js"></script> 

Data Adapter allows to parse both tables created with <table> tag and with a help of CSS. Please see samples and description below.

Table Tag Table

To load data from a table created with <table> tag you need to use the parseHtmlTable() method and table should have the following format: <thead> is considered as series names, the first column is considered to be an argument, and all other columns are considered to be series, <caption> tag is considered to be a chart title. Note: <thead> and <caption> are optional.

<table id="htmlTable" class="htmlTable"> <caption>Exchange rates</caption> <thead> <tr> <th>Date</th> <th>EUR</th> <th>USD</th> <th>YEN</th> </tr> </thead> <tbody> <tr> <td>01/01</td> <td>1</td> <td>2</td> <td>3</td> </tr> <tr> <td>01/02</td> <td>1</td> <td>2</td> <td>3</td> </tr> <tr> <td>01/03</td> <td>1</td> <td>2</td> <td>3</td> </tr> </tbody> </table> 

Here is a sample code that will parse an HTML table shown above into anychart.data.DataSettings format, which can be used to set data to charts:

// parse a table with 'htmlTable' id var tableData = anychart.data.parseHtmlTable("#htmlTable"); 

To set the data obtained like that to a chart you need to use the {anychart.charts.Cartesian#data}data(){api} method:

// create a chart var chart = anychart.column(); // parse a table with 'htmlTable' id var tableData = anychart.data.parseHtmlTable("#htmlTable"); // set the data to a chart chart.data(tableData); 

Here is a live sample:

CSS Table

To load data from a table created with CSS you need to use the parseHtmlTable() method and provide proper CSS selectors. For example, if the table is created in CSS like this:

<div class="table"> <div class="heading"> <div class="cell"> <p>Date</p> </div> <div class="cell"> <p>ILS (₪)</p> </div> <div class="cell"> <p>CNY (¥)</p> </div> </div> <div class="row"> <div class="cell"> <p>01/01</p> </div> <div class="cell"> <p>2</p> </div> <div class="cell"> <p>3</p> </div> </div> </div> 

Then you can load data from it like this, notice that you can dig into divs and obtain a proper element:

var tableData = anychart.data.parseHtmlTable(".table", ".row", ".cell p", ".heading .cell p", ".title"); 

Here is a live sample: