【vte.cx 응용】 23. 서버 측 Javascript를 사용한 엑셀 출력 방법
vtecxblank를 최신 상태로 유지
Xls 출력은 이전 버전의 vtecxblank 프로젝트에서는 작동하지 않습니다.
죄송합니다만, vtecxblank 프로젝트를 최신으로 해 주시도록 잘 부탁드립니다.
(2015/12/18 포함)
XLS 샘플 소스
엑셀 파일을 출력할 때는 템플릿이 되는 XLS 파일과 리소스 데이터가 필요합니다.
XLS 파일로 형식이 되는 템플릿을 작성해, 그 템플릿에 자원 데이터의 값을 대입해 출력하는 이미지가 됩니다.
이 리소스 데이터를 xls로 출력한다고 가정합니다.
/d/hoge(자원 데이터) {
feed: {
entry:[{
title: 'Hello World',
link: [{
___href: '/hoge',
___rel: 'self'
}],
id: '/hoge,1'
}]
}
}
리소스 데이터의 title 항목인 Hello World를 XLS로 출력하려면 다음과 같은 파일을 템플릿으로 준비하십시오.
hello_world.xls(XLS 템플릿)
표시할 항목을 셀에 "${항목 이름}"으로 지정합니다.
이렇게 하면 제목 항목인 Hello World를 셀에 포함할 수 있습니다.
템플릿의 엑셀 파일을 저장할 위치
템플릿의 HTML은 vtecxblank 프로젝트의 다음 위치에 배치하십시오.
파일의 위치 /app/xls
hello_world.xls
서버 측 자바 스크립트에서 ReflexContext.toXls () 실행
엑셀을 작성해 출력하기 위해서는 서버측 javascript가 필요합니다.
ReflexContext.toXls() 메서드를 사용하여 엑셀을 출력할 수 있습니다.
다음 서버측 javascript를 준비하십시오.
test.xls.js(서버측 javascript)module.exports = function () {
// リソースデータ取得
var data = ReflexContext.getEntry('/hoge');
// エクセル出力
ReflexContext.toXls(data, '/xls/hello_world.xls', 'test.xls');
};
ReflexContext.toXls 메서드의 인수는 다음과 같습니다.
ReflexContext.toXls({リソースデータ}, {HTMLのURL}, {XLSのファイル名(拡張子含む)})
배포를 실행하고 실제로 액세스해 봅니다.
엑셀 파일을 출력할 때는 템플릿이 되는 XLS 파일과 리소스 데이터가 필요합니다.
XLS 파일로 형식이 되는 템플릿을 작성해, 그 템플릿에 자원 데이터의 값을 대입해 출력하는 이미지가 됩니다.
이 리소스 데이터를 xls로 출력한다고 가정합니다.
/d/hoge(자원 데이터)
{
feed: {
entry:[{
title: 'Hello World',
link: [{
___href: '/hoge',
___rel: 'self'
}],
id: '/hoge,1'
}]
}
}
리소스 데이터의 title 항목인 Hello World를 XLS로 출력하려면 다음과 같은 파일을 템플릿으로 준비하십시오.
hello_world.xls(XLS 템플릿)
표시할 항목을 셀에 "${항목 이름}"으로 지정합니다.
이렇게 하면 제목 항목인 Hello World를 셀에 포함할 수 있습니다.
템플릿의 엑셀 파일을 저장할 위치
템플릿의 HTML은 vtecxblank 프로젝트의 다음 위치에 배치하십시오.
파일의 위치
/app/xls
hello_world.xls
서버 측 자바 스크립트에서 ReflexContext.toXls () 실행
엑셀을 작성해 출력하기 위해서는 서버측 javascript가 필요합니다.
ReflexContext.toXls() 메서드를 사용하여 엑셀을 출력할 수 있습니다.
다음 서버측 javascript를 준비하십시오.
test.xls.js(서버측 javascript)module.exports = function () {
// リソースデータ取得
var data = ReflexContext.getEntry('/hoge');
// エクセル出力
ReflexContext.toXls(data, '/xls/hello_world.xls', 'test.xls');
};
ReflexContext.toXls 메서드의 인수는 다음과 같습니다.
ReflexContext.toXls({リソースデータ}, {HTMLのURL}, {XLSのファイル名(拡張子含む)})
배포를 실행하고 실제로 액세스해 봅니다.
module.exports = function () {
// リソースデータ取得
var data = ReflexContext.getEntry('/hoge');
// エクセル出力
ReflexContext.toXls(data, '/xls/hello_world.xls', 'test.xls');
};
ReflexContext.toXls({リソースデータ}, {HTMLのURL}, {XLSのファイル名(拡張子含む)})
app 아래에 배치한 후 배포를 수행한 후 아래 URL로 액세스해 보세요.
액세스 URL
/s/test.xls
그러면 XLS가 표시 (또는 다운로드)된다고 생각합니다.
글로벌 output_xls.js 만들기
하나의 XLS 파일에 대해 하나의 서버 측 자바 스크립트를 만드는 것은 무언가와 번거로운 경우가 있습니다. 그러한 경우는 xls 작성용의 공통적인 서버 사이드 javascript를 작성하면 좋다고 생각합니다.
Xls 작성을 위한 서버측 javascriptGET /s/output_xls?data=/hoge&template=/xls/person_template.xls&name=test.xls
// output_xls.js
module.exports = function () {
var querystring = ReflexContext.querystring();
// 各パラメータ取得
var data_path = querystring.split('&')[0].replace('data=', '');
var template_path = querystring.split('&')[1].replace('template=', '');
var xls_name = querystring.split('&')[2].replace('name=', '');
// リソースデータ取得
var data = ReflexContext.getEntry(data_path);
ReflexContext.toXls(data, template_path, xls_name);
};
이렇게 하면 인수에 의해 생성되는 엑셀을 변경할 수 있습니다.
이상으로 엑셀 출력의 설명을 종료합니다.
Reference
이 문제에 관하여(【vte.cx 응용】 23. 서버 측 Javascript를 사용한 엑셀 출력 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/takeyama/items/ce4373446365b2053671
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
GET /s/output_xls?data=/hoge&template=/xls/person_template.xls&name=test.xls
// output_xls.js
module.exports = function () {
var querystring = ReflexContext.querystring();
// 各パラメータ取得
var data_path = querystring.split('&')[0].replace('data=', '');
var template_path = querystring.split('&')[1].replace('template=', '');
var xls_name = querystring.split('&')[2].replace('name=', '');
// リソースデータ取得
var data = ReflexContext.getEntry(data_path);
ReflexContext.toXls(data, template_path, xls_name);
};
Reference
이 문제에 관하여(【vte.cx 응용】 23. 서버 측 Javascript를 사용한 엑셀 출력 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/takeyama/items/ce4373446365b2053671텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)