我有一个表格数据,我需要导出到csv而不使用任何外部插件或API.我使用了window.open传递mime类型的方法但面临如下问题:
如何使用jquery确定系统上是否安装了Microsoft Excel或Open Office
代码应该独立于系统上安装的内容,即openoffice或ms excel.我相信CSV是可以预期在两个编辑器中显示的格式.
码
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script type="text/JavaScript">
$(document).ready(function(){
$("#btnExport").click(function(e) {
var msg = GetMimeTypes();
//OpenOffice
window.open('data:application/vnd.oasis.opendocument.spreadsheet,' + $('#dvData').html());
//MS-Excel
window.open('data:application/vnd.ms-excel,' + $('#dvData').html());
//CSV
window.open('data:application/csv,charset=utf-8,' + $('#dvData').html());
e.preventDefault();
});
});
function GetMimeTypes () {
var message = "";
// Internet Explorer supports the mimeTypes collection, but it is always empty
if (navigator.mimeTypes && navigator.mimeTypes.length > 0) {
var mimes = navigator.mimeTypes;
for (var i=0; i < mimes.length; i++) {
message += "<b>" + …Run Code Online (Sandbox Code Playgroud) 我有一个像这样的html表结构;
<tr style="font-weight: bold">
<td>ID</td>
<td>Navn</td>
<td>Adresse</td>
<td>By</td>
<td>Post nr</td>
<td>E-mail</td>
<td>Telefon</td>
<td>Status og dato</td>
<td>Dropdown info</td>
<td>Produkt info</td>
<td>Buydate</td>
<td>Ref nr. (3 første cifre)</td>
</tr>
<tr>
<td>40563</td>
<td>Firstname Lastname</td>
<td>Address</td>
<td>Copen</td>
<td>2100</td>
<td>ff@hotmail.com</td>
<td>123123</td>
<td>Ikke indløst</td>
<td>EEE-BBB</td>
</tr>
Run Code Online (Sandbox Code Playgroud)
我想通过php将其转换为csv/excel文件.
所以每个都是excel中的一行,每个都是行中的一个单元格,
请问这怎么办?
我研究过并发现使用PHP自动将HTML表转换为CSV?但答案对我来说不正常,我将所有细胞结果都放在一个'细胞'中,所以每行只有一个细胞.
这就是我所尝试过的;
$html = str_get_html($table);
header('Content-type: application/ms-excel');
header('Content-Disposition: attachment; filename=sample.csv');
$fp = fopen("php://output", "w");
foreach($html->find('tr') as $element)
{
$td = array();
foreach( $element->find('td') as $row)
{
$td [] = $row->plaintext;
}
fputcsv($fp, $td);
}
fclose($fp);
exit; …Run Code Online (Sandbox Code Playgroud)