Если вы хотите распечатать, оцените контент Array, который вы можете использовать Arrays.toString
jshell> String[] names = {"ram","shyam"};
names ==> String[2] { "ram", "shyam" }
jshell> Arrays.toString(names);
$2 ==> "[ram, shyam]"
jshell>
Всегда есть атрибут HTML5 download
:
Этот атрибут, если он присутствует, указывает, что автор намеревается использовать гиперссылку для загрузки ресурса, поэтому что когда пользователь нажимает на ссылку, им будет предложено сохранить ее как локальный файл.
Если атрибут имеет значение, это значение будет использоваться в качестве предварительно заполненного имени файла в приглашении «Сохранить» который открывается, когда пользователь нажимает на ссылку.
blockquote>var A = [['n','sqrt(n)']]; for(var j=1; j<10; ++j){ A.push([j, Math.sqrt(j)]); } var csvRows = []; for(var i=0, l=A.length; i<l; ++i){ csvRows.push(A[i].join(',')); } var csvString = csvRows.join("%0A"); var a = document.createElement('a'); a.href = 'data:attachment/csv,' + encodeURIComponent(csvString); a.target = '_blank'; a.download = 'myFile.csv'; document.body.appendChild(a); a.click();
Проверено в Chrome и Firefox, отлично работает в новейших версиях (по состоянию на июль 2013 года) . Также работает в Opera, но не устанавливает имя файла (по состоянию на июль 2013 года) . Кажется, что не работает в IE9 (большой сюрприз) (по состоянию на июль 2013 года) .
Обзор того, какие браузеры поддерживают атрибут загрузки, можно найти Здесь Для неосновных браузеров необходимо установить соответствующие заголовки на сервере.
По-видимому, есть взломать IE10 и IE11 , что не поддерживаем атрибут
download
(однако, Edge) .var A = [['n','sqrt(n)']]; for(var j=1; j<10; ++j){ A.push([j, Math.sqrt(j)]); } var csvRows = []; for(var i=0, l=A.length; i<l; ++i){ csvRows.push(A[i].join(',')); } var csvString = csvRows.join("%0A"); if (window.navigator.msSaveOrOpenBlob) { var blob = new Blob([csvString]); window.navigator.msSaveOrOpenBlob(blob, 'myFile.csv'); } else { var a = document.createElement('a'); a.href = 'data:attachment/csv,' + encodeURIComponent(csvString); a.target = '_blank'; a.download = 'myFile.csv'; document.body.appendChild(a); a.click(); }
Как только я упаковал JS-код, выполнив это в крошечную библиотеку:
https://github.com/AlexLibs/client-side-csv-generator
Код, документация и демонстрационная / игровая площадка предоставлены на Github.
Наслаждайтесь:)
Приглашения по запросу приветствуются.
См. ответ adeneo, но не забудьте encodeURIComponent
!
a.href = 'data:application/csv;charset=utf-8,' + encodeURIComponent(csvString);
Кроме того, мне нужно было сделать «\r\n» не просто «\n» для разделителя строк.
var csvString = csvRows.join("\r\n");
Пересмотренная скрипка: http://jsfiddle.net/7Q3c6/
Ответ на @adeneo работает для Firefox и хром ... Для IE можно использовать ниже.
if (window.navigator.msSaveOrOpenBlob) {
var blob = new Blob([decodeURIComponent(encodeURI(result.data))], {
type: "text/csv;charset=utf-8;"
});
navigator.msSaveBlob(blob, 'FileName.csv');
}