Generieren Sie entsprechende Grafiken basierend auf den übergebenen Parametern
Kopieren Sie den Codecode wie folgt:
LoadChart: 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: „Chartdaten können nur schwer geladen werden …“
});
var-Option = {
Tooltip: {
Auslöser: 'Achse',
axisPointer: { // Achsenindikator, Achsentrigger ist gültig
Typ: 'Schatten' // Standard ist gerade Linie, optional: 'Linie' |.
}
},
Legende: {
Daten: data.indis,
x: 'links',
y: 'oben'
},
Werkzeugkasten: {
zeigen: wahr,
orient: 'vertikal',
x: 'richtig',
y: 'Mitte',
Besonderheit : {
markieren : {
zeigen: wahr
},
Datenansicht: {
zeigen: wahr,
readOnly: wahr
},
magicType: {
zeigen: wahr,
Typ: ['line', 'bar', 'stack', 'tiled']
},
wiederherstellen : {
zeigen: wahr
},
saveAsImage : {
zeigen: wahr
}
}
},
berechenbar: wahr,
Animation: falsch,
xAchse: [{
Typ: 'Kategorie',
Daten: data.grp
}],
yAchse: [{
Typ: 'Wert',
splitArea: {
zeigen: wahr
}
}],
Serie: data.bar.series
};
}
myChart.hideLoading();
myChart.setOption(option);
that.imgURL = myChart.getDataURL('png');//Base64-Kodierung abrufen
});
},
initEChart: function(){
require.config({
Pfade:{
'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'
}
});
}
Übergeben Sie Daten an das Backend
Kopieren Sie den Codecode wie folgt:
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 Holen Sie sich die Base64-Bildkodierung
Ext.Ajax.request({
URL: 'indicator/exp2excl.mvc',
Parameter: {
imgURL:URL,
left:getS(left)
}
});
Funktion 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(',');
return str;
}
var data = Ext.getCmp("indi_pivotGrid_id").extractData();
var s,arr=[];
for(var i=0;i<data.length;i++){
arr.push(data[i]);
}
window.open('indicator/exportList2Excel.mvc?title='+encodeURIComponent(encodeURIComponent(title))+'&left='+encodeURIComponent(encodeURIComponent(getS(left)))+'' +
'&top='+encodeURIComponent(encodeURIComponent(getS(t)))+'&data='+arr.join(';'));
}
Base64 analysieren und Bilder generieren
Kopieren Sie den Codecode wie folgt:
public void base64TOpic(String fileName, HttpServletRequest req) {
//Base64 dekodiert die Byte-Array-Zeichenfolge und generiert ein Bild
if (imgsURl == null) //Bilddaten sind leer
zurückkehren ;
BASE64Decoder decoder = new BASE64Decoder();
versuchen
{
String[] url = imgsURl.split(",");
String u = url[1];
//Base64-Dekodierung
byte[] buffer = new BASE64Decoder().decodeBuffer(u);
//Bilder generieren
OutputStream out = new FileOutputStream(new File(req.getRealPath("pic/"+fileName+".jpg")));
out.write(buffer);
out.flush();
out.close();
zurückkehren;
}
Catch (Ausnahme e)
{
zurückkehren;
}
}
Zeichnen Sie Bilder durch Poi und fügen Sie die Bilder in Excel ein
Kopieren Sie den Codecode wie folgt:
row = sheet.createRow(index+3);
HSSFCell headerCell = row.createCell(0);
headerCell.setCellType(HSSFCell.CELL_TYPE_BLANK);
headerCell.setCellValue(title);
row = sheet.createRow(index + 6);
HSSFCell-Zellen = row.createCell(0);
cell.setCellType(HSSFCell.CELL_TYPE_BLANK);
ByteArrayOutputStream outStream = new ByteArrayOutputStream(); // Das Bild in den Stream schreiben
BufferedImage bufferImg = ImageIO.read(new File(req.getRealPath("pic/"+fileName+".jpg")));
ImageIO.write(bufferImg, "PNG", outStream); // Verwenden Sie HSSFPatriarch, um Bilder nach EXCEL zu schreiben
HSSFPatriarch patri = sheet.createDrawingPatriarch();
HSSFClientAnchor-Anker = neuer HSSFClientAnchor(5, 5, 5, 5,
(kurz) 1, Index + 6, (kurz) 6, 45);
patri.createPicture(anchor, workbook.addPicture(
outStream.toByteArray(), HSSFWorkbook.PICTURE_TYPE_PNG));
versuchen {
workbook.write(out);
out.flush();
out.close();
} Catch (IOException e) {
e.printStackTrace();
}