sourcecode

자바스크립트를 사용하여 엑셀 파일을 내보내려면 어떻게 해야 합니까?

copyscript 2023. 5. 24. 22:20
반응형

자바스크립트를 사용하여 엑셀 파일을 내보내려면 어떻게 해야 합니까?

Javascript를 통해 Excel/CSV를 생성할 수 있는 방법이 있습니까?(브라우저와 호환되어야 합니다.)

클라이언트 측에서 Excel xlsx 파일을 다운로드할 수 있는 방법을 제공하고 Excel 스프레드시트 형식을 지정하는 옵션을 포함하는 Excel Builder(.js)라는 흥미로운 프로젝트가 github에 있습니다.
https://github.com/stephenliberty/excel-builder.js

이 라이브러리를 사용하면 브라우저 및 Excel 호환성 문제가 모두 발생할 수 있지만 올바른 조건에서는 매우 유용할 수 있습니다.

Excel 옵션은 적지만 Excel 호환성 문제에 대한 걱정은 적은 또 다른 github 프로젝트는 ExcellentExport.js에서 찾을 수 있습니다.
https://github.com/jmaister/excellentexport

AngularJS를 사용하는 경우 ng-csv가 있습니다.
"어레이 및 개체를 다운로드 가능한 CSV 파일로 변환하는 간단한 지시"입니다.

서버에서 Excel 파일을 생성할 수 있다면 가장 좋은 방법일 것입니다.Excel을 사용하면 포맷을 추가하고 출력을 더 잘 보이게 할 수 있습니다.몇 가지 Excel 옵션이 이미 언급되었습니다.만약 당신이 PHP 백엔드를 가지고 있다면, 당신은 phpExcel을 고려할 수 있습니다.

만약 당신이 자바스크립트로 클라이언트에 대한 모든 것을 하려고 한다면, 엑셀은 선택사항이 아니라고 생각합니다.CSV 파일을 생성하고 사용자가 다운로드할 수 있도록 데이터 URL을 생성할 수 있습니다.

다음을 시연하기 위해 JSFidle을 만들었습니다. http://jsfiddle.net/5KRf6/3/

이 Javascript(jQuery를 사용한다고 가정)는 테이블의 입력 상자에서 값을 가져와 CSV 형식의 문자열을 만듭니다.

var csv = "";
$("table").find("tr").each(function () {
    var sep = "";
    $(this).find("input").each(function () {
        csv += sep + $(this).val();
        sep = ",";
    });
    csv += "\n";
});

원하는 경우 데이터를 페이지의 태그(ID가 "csv"인 태그)에 넣을 수 있습니다.

$("#csv").text(csv);

다음 코드를 사용하여 해당 텍스트에 대한 URL을 생성할 수 있습니다.

window.URL = window.URL || window.webkiURL;
var blob = new Blob([csv]);
var blobURL = window.URL.createObjectURL(blob);

마지막으로 해당 데이터를 다운로드할 수 있는 링크가 추가됩니다.

$("#downloadLink").html("");
$("<a></a>").
attr("href", blobURL).
attr("download", "data.csv").
text("Download Data").
appendTo('#downloadLink');

비슷한 답변이 여기에 게시되었습니다.

작업 예제 링크

var sheet_1_data = [{Col_One:1, Col_Two:11}, {Col_One:2, Col_Two:22}];
var sheet_2_data = [{Col_One:10, Col_Two:110}, {Col_One:20, Col_Two:220}];
var opts = [{sheetid:'Sheet One',header:true},{sheetid:'Sheet Two',header:false}];
var result = alasql('SELECT * INTO XLSX("sample_file.xlsx",?) FROM ?', [opts,[sheet_1_data ,sheet_2_data]]);

기본 라이브러리 필요 -

<script src="http://alasql.org/console/alasql.min.js"></script> 
<script src="http://alasql.org/console/xlsx.core.min.js"></script> 

웹 서버에 CSV 파일을 쓰고 URL을 반환하는 AJAX 포스트백 메서드를 생성합니다.브라우저의 숨겨진 IFrame을 서버의 CSV 파일 위치로 설정합니다.

그러면 사용자에게 CSV 다운로드 링크가 표시됩니다.

실제 예제를 사용하여 질문에 답하려면 다음과 같이 하십시오.

<script type="text/javascript">
function DownloadJSON2CSV(objArray)
{
    var array = typeof objArray != 'object' ? JSON.parse(objArray) : objArray;

    var str = '';

    for (var i = 0; i < array.length; i++) {
        var line = new Array();

        for (var index in array[i]) {
           line.push('"' + array[i][index] + '"');
        }

        str += line.join(';');
        str += '\r\n';
    }
    window.open( "data:text/csv;charset=utf-8," + encodeURIComponent(str));
}
</script>

언급URL : https://stackoverflow.com/questions/333537/how-can-i-export-excel-files-using-javascript

반응형