Я пытаюсь сохранить в Excel таблицу HTML, которая содержит раскрывающиеся списки и поля комментариев.
Я могу нормально сохранять статическую информацию, но комментарий (текстовое поле) и раскрывающийся список (выбранное значение) не встречаются.
<!doctype html>
<head>
<meta charset='utf-8'>
<script>
function fnExcelReport(){
var tab_text="<table border='2px'><tr bgcolor='#87AFC6'>"; // bgcolor will give color to your first row
var textRange; var j=0;
tab = document.getElementById('tblData'); // id of table
var table = document.getElementById("tblData");
for(j = 0 ; j < tab.rows.length ; j++)
{
tab_text=tab_text+tab.rows[j].innerHTML+"</tr>";
}
tab_text=tab_text+"</table>";
//alert(tab_text);
tab_text= tab_text.replace(/<A[^>]*>|<\/A>/g, "");//remove if u want links in your table
tab_text= tab_text.replace(/<img[^>]*>/gi,""); // remove if u want images in your table
tab_text= tab_text.replace(/<input[^>]*>|<\/input>/gi, ""); // reomves input params
var ua = window.navigator.userAgent;
var msie = ua.indexOf("MSIE ");
if (msie > 0 || !!navigator.userAgent.match(/Trident.*rv\:11\./)) // If Internet Explorer
{
txtArea1.document.open("txt/html","replace");
txtArea1.document.write(tab_text);
txtArea1.document.close();
txtArea1.focus();
sa=txtArea1.document.execCommand("SaveAs",true,"Say Thanks to Submit.xlsx");
}
else //other browser not tested on IE 11
sa = window.open('data:application/vnd.ms-excel,' + encodeURIComponent(tab_text));
return (sa);
}
</script>
</head>
<body>
<table id="tblData">
<tr>
<th>Test</th>
<th>Comments</th>
<th>Pass or Fail</th>
</tr>
<tr>
<td>Test 1</td>
<td><textarea rows="2" cols="15" title="Enter comments if necessary" name="comment" placeholder="Comments" form="usrform"></textarea></td>
<td>
<select name="cars" autocomplete="off" class="passFail")">
<option name="default" value="default" selected="selected" disabled="disabled">Pass or Fail</option>
<option value="pass">Pass</option>
<option value="fail">Fail</option>
</select>
</td>
</tr>
<tr>
<td>Test 2</td>
<td><textarea rows="2" cols="15" title="Enter comments if necessary" name="comment" placeholder="Comments" form="usrform"></textarea></td>
<td>
<select name="cars" autocomplete="off" onchange="java_script_:show(this.options[this.selectedIndex].value)">
<option name="default" value="default" selected="selected" disabled="disabled">Pass or Fail</option>
<option value="pass">Pass</option>
<option value="fail">Fail</option>
</select>
</td>
</tr>
<tr>
<td>Test 3</td>
<td><textarea rows="2" cols="15" title="Enter comments if necessary" name="comment" placeholder="Comments" form="usrform"></textarea></td>
<td>
<select name="cars" autocomplete="off" onchange="java_script_:show(this.options[this.selectedIndex].value)">
<option name="default" value="default" selected="selected" disabled="disabled">Pass or Fail</option>
<option value="pass">Pass</option>
<option value="fail">Fail</option>
</select>
</td>
</tr>
</table>
<button id="btnExport" onclick="fnExcelReport('headerTable', 'test results');"> EXPORT </button>
</body>
</html>
Я получаю строки заголовков и Test 1, Test2 и Test3, но там, где есть комментарии и выпадающий список, я фактически получаю поле комментария и раскрывающийся список в Excel, а не значения, которые были введены в HTML.
Было бы лучше пройти через ячейку таблицы за ячейкой и записать это в Excel, или перейти столбец за столбцом и трактовать столбцы 2 и 3 по-разному, потому что я не буду использовать .innerHTML?