전달된 매개변수를 기반으로 해당 그래픽을 생성합니다.
다음과 같이 코드 코드를 복사합니다.
loadChart: 함수(데이터, 항목){
var = 이것;
require(['echarts', 'echarts/차트/막대', 'echarts/차트/라인',
'echarts/차트/파이'], function(ec) {
that.body.setHeight(800);
var myChart = ec.init(that.body.dom);
myChart.showLoading({
text: "차트 데이터를 로드하는 데 어려움을 겪고 있습니다..."
});
var 옵션 = {
툴팁 : {
트리거 : '축',
axisPointer: { // 축 표시기, 축 트리거가 유효합니다.
유형: 'shadow' // 기본값은 직선, 선택 사항: 'line' |
}
},
전설 : {
데이터: data.indis,
x : '왼쪽',
y : '상단'
},
도구 상자 : {
쇼: 사실,
방향 : '세로',
x : '맞아요',
y : '가운데',
특징 : {
표시 : {
쇼 : 사실
},
데이터뷰: {
쇼: 사실,
읽기 전용 : 사실
},
매직 유형 : {
쇼: 사실,
유형: ['라인', '막대', '스택', '타일']
},
복원하다 : {
쇼 : 사실
},
이미지로 저장: {
쇼 : 사실
}
}
},
계산 가능 : 사실,
애니메이션: 거짓,
x축 : [{
유형 : '카테고리',
데이터: data.grp
}],
y축 : [{
유형: '값',
분할 영역 : {
쇼 : 사실
}
}],
시리즈: data.bar.series
};
}
myChart.hideLoading();
myChart.setOption(옵션);
that.imgURL = myChart.getDataURL('png');//base64 인코딩 가져오기
});
},
initEChart : 함수(){
require.config({
경로:{
'echarts':'js/com/bhtec/echart/echarts',
'echarts/차트/바': 'js/com/bhtec/echart/echarts',
'echarts/차트/라인': 'js/com/bhtec/echart/echarts',
'echarts/차트/파이': 'js/com/bhtec/echart/echarts'
}
});
}
백엔드에 데이터 전달
다음과 같이 코드 코드를 복사합니다.
doExport: 함수(){
var url = this.chartPanel.getImageURL();
var title = Ext.fly('indi-display-title-id').first().dom.innerHTML;
var left = Ext.getCmp("indi_pivotGrid_id").leftAxis.getTuples();
var t = Ext.getCmp("indi_pivotGrid_id").topAxis.getTuples();
//TODO base64 이미지 인코딩을 가져옵니다.
Ext.Ajax.request({
URL: '표시기/exp2excl.mvc',
매개변수 : {
imgURL:url,
왼쪽:getS(왼쪽)
}
});
함수 getS(d){
var arr = [],str;
for(var i=0;i<d.length;i++){
var s = IndiFn.getAxisStr(d[i]);
arr.push(s);
}
str = arr.join(',');
str을 반환;
}
var data = Ext.getCmp("indi_pivotGrid_id").extractData();
var s,arr=[];
for(var i=0;i<data.length;i++){
arr.push(데이터[i]);
}
window.open('indicator/exportList2Excel.mvc?title='+encodeURIComponent(encodeURIComponent(title))+'&left='+encodeURIComponent(encodeURIComponent(getS(left)))+'' +
'&top='+encodeURIComponent(encodeURIComponent(getS(t)))+'&data='+arr.join(';'));
}
base64 구문 분석 및 이미지 생성
다음과 같이 코드 코드를 복사합니다.
공개 무효 base64TOpic(문자열 파일 이름, HttpServletRequest req) {
//Base64는 바이트 배열 문자열을 디코딩하고 그림을 생성합니다.
if (imgsURl == null) //이미지 데이터가 비어 있습니다.
반품 ;
BASE64Decoder 디코더 = 새로운 BASE64Decoder();
노력하다
{
String[] url = imgsURl.split(",");
문자열 u = url[1];
//Base64 디코딩
byte[] 버퍼 = 새로운 BASE64Decoder().decodeBuffer(u);
//사진 생성
OutputStream out = new FileOutputStream(new File(req.getRealPath("pic/"+fileName+".jpg")));
out.write(버퍼);
out.flush();
종료.닫기();
반품;
}
잡기 (예외 e)
{
반품;
}
}
poi를 통해 그림을 그리고 그 그림을 엑셀에 넣기
다음과 같이 코드 코드를 복사합니다.
행 = sheet.createRow(index+3);
HSSFCell headerCell = row.createCell(0);
headerCell.setCellType(HSSFCell.CELL_TYPE_BLANK);
headerCell.setCellValue(제목);
행 = sheet.createRow(index + 6);
HSSFCell 셀 = row.createCell(0);
cells.setCellType(HSSFCell.CELL_TYPE_BLANK);
ByteArrayOutputStream outStream = new ByteArrayOutputStream() // 이미지를 스트림에 씁니다.
BufferedImage bufferImg = ImageIO.read(new File(req.getRealPath("pic/"+fileName+".jpg")));
ImageIO.write(bufferImg, "PNG", outStream); // HSSFPatriarch를 사용하여 EXCEL에 그림을 씁니다.
HSSFPatriarch 패트리 = sheet.create드로잉Patriarch();
HSSFClientAnchor 앵커 = 새로운 HSSFClientAnchor(5, 5, 5, 5,
(짧은) 1, 인덱스 + 6, (짧은) 6, 45);
patri.createPicture(앵커, workbook.addPicture(
outStream.toByteArray(), HSSFWorkbook.PICTURE_TYPE_PNG));
노력하다 {
통합 문서.쓰기(아웃);
out.flush();
종료.닫기();
} 잡기(IOException e) {
e.printStackTrace();
}