渡されたパラメータに基づいて対応するグラフィックを生成します。
次のようにコードをコピーします。
ロードチャート: function(data,item){
var that = this;
require(['echarts', 'echarts/chart/bar', 'echarts/chart/line',
'echarts/chart/pie'], function(ec) {
that.body.setHeight(800);
var myChart = ec.init(that.body.dom);
myChart.showLoading({
text : 「グラフ データの読み込みに苦労しています...」
});
var オプション = {
ツールチップ: {
トリガー: '軸'、
axisPointer: { // 軸インジケーター、軸トリガーは有効です
type: 'shadow' // デフォルトは直線、オプション: 'line' |
}
}、
伝説 : {
データ: data.indis、
x : '左'、
y : 'トップ'
}、
ツールボックス: {
ショー:本当、
方向: '垂直'、
x : 「そうです」、
y : '中心'、
特徴 : {
マーク : {
ショー:本当
}、
データビュー: {
ショー:本当、
readOnly : true
}、
マジックタイプ: {
ショー:本当、
タイプ: ['ライン'、'バー'、'スタック'、'タイル'】
}、
復元する : {
ショー:本当
}、
画像として保存: {
ショー:本当
}
}
}、
計算可能:真、
アニメーション: false、
x軸: [{
タイプ: 'カテゴリ',
データ: data.grp
}]、
y軸: [{
タイプ: '値'、
分割エリア : {
ショー:本当
}
}]、
シリーズ: data.bar.series
};
}
myChart.hideLoading();
myChart.setOption(オプション);
that.imgURL = myChart.getDataURL('png');//base64 エンコーディングを取得します
});
}、
initEChart : function(){
require.config({
パス:{
'echarts':'js/com/bhtec/echart/echarts',
'echarts/chart/bar' : 'js/com/bhtec/echart/echarts',
'echarts/chart/line': 'js/com/bhtec/echart/echarts',
'echarts/chart/pie': 'js/com/bhtec/echart/echarts'
}
});
}
バックエンドにデータを渡す
次のようにコードをコピーします。
doExport: function(){
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: 'indicator/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;
}
str = arr.join(',');
文字列を返します。
}
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を解析してイメージを生成する
次のようにコードをコピーします。
public void base64TOpic(String fileName, 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();
out.close();
戻る;
}
catch (例外 e)
{
戻る;
}
}
ポイで絵を描いてエクセルに取り込む
次のようにコードをコピーします。
行 = シート.createRow(インデックス+3);
HSSFCell headerCell = row.createCell(0);
headerCell.setCellType(HSSFCell.CELL_TYPE_BLANK);
headerCell.setCellValue(タイトル);
行 = シート.createRow(インデックス + 6);
HSSFCell セル = row.createCell(0);
セル.setCellType(HSSFCell.CELL_TYPE_BLANK);
ByteArrayOutputStream outStream = new ByteArrayOutputStream() // 画像をストリームに書き込みます。
BufferedImagebufferImg = ImageIO.read(new File(req.getRealPath("pic/"+fileName+".jpg")));
ImageIO.write(bufferImg, "PNG", outStream); // HSSFPatriarch を使用して画像を EXCEL に書き込みます
HSSFPatriarch パトリ =sheet.createDrawingPatriarch();
HSSFClientAnchor アンカー = new HSSFClientAnchor(5, 5, 5, 5,
(短い) 1、インデックス + 6、(短い) 6、45);
patri.createPicture(anchor, workbook.addPicture(
outStream.toByteArray()、HSSFWorkbook.PICTURE_TYPE_PNG));
試す {
workbook.write(out);
out.flush();
out.close();
} キャッチ (IOException e) {
e.printStackTrace();
}