Fórum Javascript exportar csv IE #511144
19/02/2015
0
Olá,
Tenho o código abaixo para exportar uma tabela html para um arquivo csv. Consigo baixar o arquivo e abrir no excel. Meu problema é: quando baixo pelo Chrome o excel identifica o ";" e faz a divisão das colunas. Porém quando baixo pelo IE o excel não identifica o ";" e deixa todas as colunas na primeira célula.
Podem me ajudar? Segue meu código:
Tenho o código abaixo para exportar uma tabela html para um arquivo csv. Consigo baixar o arquivo e abrir no excel. Meu problema é: quando baixo pelo Chrome o excel identifica o ";" e faz a divisão das colunas. Porém quando baixo pelo IE o excel não identifica o ";" e deixa todas as colunas na primeira célula.
Podem me ajudar? Segue meu código:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Export table to Excel in 10 lines</title>
<script>
function Exportar()
{
var textRange; var j=0;
var tab = document.getElementById("Tabela"); // id da tabela
if(document.getElementById("Tabela").rows.length < 2){
alert("Por favor, realizar uma pesquisa antes de exportar.");
}
else{
var a=[], csv='', LF='\r\n', r, c, rs, cs, row, cell, i, j, v;
for (r=0; r<tab.rows.length; r++){
row = tab.rows[r];
for (c=0; c<row.cells.length; c++){
cell = row.cells[c];
rs = cell.rowSpan+r;
cs = cell.colSpan+c;
for (i=r; i<rs; i++){
if (!a[i]){
a[i]=[];
}
for (j=c; j<cs; j++){
a[i].push(i>r || j>c ? '' : " " + cell.innerHTML);
}
}
}
}
var ua = window.navigator.userAgent;
var msie = ua.indexOf("MSIE ");
if (msie > 0 || !!navigator.userAgent.match(/Trident.*rv\:11\./)) // Se for Internet Explorer
{
for (r=0; r<a.length; r++){
v = '';
for (c=0; c<a[r].length; c++){
csv += (v + a[r][c]);
v = ";";
}
csv += '\r\n';
}
txtArea1.document.open("txt/html","replace");
txtArea1.document.write(csv);
txtArea1.document.close();
txtArea1.focus();
sa = txtArea1.document.execCommand("SaveAs",true,"Socilitações.csv");
}
else
for (r=0; r<a.length; r++){
v = '';
for (c=0; c<a[r].length; c++){
csv += (v + a[r][c]);
v = ";";
}
csv += "%0A";
}
var a = document.createElement('a');
a.href = 'data:text/csv;charset=UTF-8,' + csv;
a.target = '_blank';
a.download = 'Solicitações.csv';
document.body.appendChild(a);
a.click();
//sa = window.open('data:attachment/csv,' + encodeURIComponent(csv));
return (sa);
}
}
</script>
</head>
<body>
<button onclick="Exportar()">Exportar</button>
<br/>
<span>
<table id="Tabela">
<tr>
<td>5/1</td>
<td>José</td>
</tr>
<tr>
<td>10/3</td>
<td>João</td>
</tr>
<tr>
<td>5/1</td>
<td>Maria</td>
</tr>
</table>
<iframe id="txtArea1" style="display:none"></iframe>
</span>
</body>
</html>
Douglas Emerick
Curtir tópico
+ 0
Responder
Post mais votado
19/02/2015
Acho que achei uma possivel solução, olhe aqui [url]http://stackoverflow.com/questions/18185660/javascript-jquery-exporting-data-in-csv-not-working-in-ie[/url]
Marcelo Pastore
Responder
Gostei + 1
Mais Posts
20/02/2015
Douglas Emerick
Marcelo, muito bom o seu link. Era exatamente o que eu precisava. Só mais uma dúvida. Tem como eu fixar a extensão, pois no IE 11 não aparece na janela a extensão do arquivo. Caso o usuário altere ele não salva com a extensão cvs.
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)