Tôi đang cố chuyển đổi các bảng HTML thành Excel, tôi đã thử với một hàm JavaScript chuyển đổi một bảng đơn giản thành Excel, nó hoạt động tốt. Nếu tôi có nhiều bảng, tôi sẽ có thể thêm tất cả dữ liệu bảng vào tệp Excel như thế nào. đây là những gì tôi đã thử. Tôi đã tạo 2 bảng và được cung cấp chỉ mục bảng testTable
và testTable1
.JavaScript - xuất dữ liệu bảng HTML vào Excel
Làm cách nào để chuyển 2 id bảng này cho hàm JavaScript khi nhấp vào nút? ngay bây giờ chỉ cần nhấp vào nút, bảng đầu tiên được xuất sang Excel khi tôi chỉ chuyển qua 'testTable'
. làm cách nào để tôi có thể xuất nhiều bảng, ví dụ: testTable
, testTable1
vào Excel?
Đây là JavaScript:
<script>
var tableToExcel = (function() {
var uri = 'data:application/vnd.ms-excel;base64,'
, template = '<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40"><head><!--[if gte mso 9]>
<xml>
<x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet><x:Name>{worksheet}
</x:Name><x:WorksheetOptions><x:DisplayGridlines/></x:WorksheetOptions>
</x:ExcelWorksheet></x:ExcelWorksheets>
</x:ExcelWorkbook>
</xml>
<![endif]-->
</head>
<body>
<table>{table}</table></body></html>'
, base64 = function(s) { return window.btoa(unescape(encodeURIComponent(s))) }
, format = function(s, c) { return s.replace(/{(\w+)}/g, function(m, p) { return c[p]; }) }
return function(table, name) {
if (!table.nodeType) table = document.getElementById(table)
var ctx = {worksheet: name || 'Worksheet', table: table.innerHTML}
window.location.href = uri + base64(format(template, ctx))
}
})()
</script>
Dưới đây là phần HTML,
<table id="testTable">
<thead>
<tr>
<th>Name</th>
<th>ACP</th>
<th>OEMCP</th>
<th>Unix<br>
NT 3.1</th>
<th>Unix<br>
NT 3.51</th>
<th>Unix<br>
95</th>
</tr>
</thead>
</table>
<table id="testTable1">
<thead>
<tr>
<th>Name</th>
<th>ACP</th>
<th>OEMCP</th>
<th>Windows<br>
NT 3.1</th>
<th>Windows<br>
NT 3.51</th>
<th>Windows<br>
95</th>
</tr>
</thead>
</table>
Xin vui lòng cho tôi biết, làm thế nào điều này có thể được thực hiện?
Cảm ơn
bạn không thể sử dụng dịch vụ web cho vấn đề này. Nó cũng sẽ hoạt động mà không cần đăng lại. – osmanraifgunes