Générer des graphiques correspondants en fonction des paramètres transmis
Copiez le code comme suit :
loadChart : fonction (données, élément) {
var ça = ceci;
require(['echarts', 'echarts/chart/bar', 'echarts/chart/line',
'echarts/chart/pie'], fonction(ec) {
that.body.setHeight(800);
var monChart = ec.init(that.body.dom);
monChart.showLoading({
text : "Les données du graphique ont du mal à se charger..."
});
option var = {
info-bulle : {
trigger : 'axe',
axisPointer : { // Indicateur d'axe, le déclencheur d'axe est valide
type : 'shadow' // La valeur par défaut est une ligne droite, facultatif : 'line' |
}
},
légende : {
données : data.indis,
x : 'gauche',
y : 'haut'
},
boîte à outils : {
montrer : vrai,
orienter : 'vertical',
x : 'vrai',
y : 'centre',
fonctionnalité : {
marque : {
montrer : vrai
},
vue de données : {
montrer : vrai,
lecture seule : vrai
},
TypeMagique : {
montrer : vrai,
tapez : ['ligne', 'bar', 'pile', 'carrelé']
},
restaurer : {
montrer : vrai
},
enregistrer sous Image : {
montrer : vrai
}
}
},
calculable : vrai,
animation : fausse,
Axe x : [{
tapez : 'catégorie',
données : data.grp
}],
Axe y : [{
tapez : 'valeur',
zone divisée : {
montrer : vrai
}
}],
série : data.bar.series
} ;
}
monChart.hideLoading();
monChart.setOption(option);
that.imgURL = myChart.getDataURL('png');//Obtenir l'encodage base64
});
},
initEChart : fonction(){
require.config({
chemins :{
'echarts':'js/com/bhtec/echart/echarts',
'echarts/chart/bar' : 'js/com/bhtec/echart/echarts',
'echarts/chart/line' : 'js/com/bhtec/echart/echarts',
'echarts/chart/tarte' : 'js/com/bhtec/echart/echarts'
}
});
}
Transmettre les données au backend
Copiez le code comme suit :
doExport : fonction(){
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 Récupérer l'encodage de l'image base64
Ext.Ajax.request({
URL : 'indicateur/exp2excl.mvc',
paramètres : {
imgURL:url,
gauche: getS (gauche)
}
});
fonction getS(d){
var arr = [],str;
pour(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=[];
pour(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(';'));
}
Analyser base64 et générer des images
Copiez le code comme suit :
public void base64TOpic (String fileName, demande HttpServletRequest) {
//Base64 décode la chaîne du tableau d'octets et génère une image
if (imgsURl == null) //Les données de l'image sont vides
retour ;
Décodeur BASE64Decoder = new BASE64Decoder();
essayer
{
String[] url = imgsURl.split(",");
Chaîne u = url[1];
//Décodage Base64
byte[] buffer = new BASE64Decoder().decodeBuffer(u);
//Générer des images
OutputStream out = new FileOutputStream(new File(req.getRealPath("pic/"+fileName+".jpg")));
out.write(tampon);
out.flush();
out.close();
retour;
}
attraper (exception e)
{
retour;
}
}
Dessinez des images via poi et mettez les images dans Excel
Copiez le code comme suit :
rangée = feuille.createRow(index+3);
HSSFCell headerCell = row.createCell(0);
headerCell.setCellType(HSSFCell.CELL_TYPE_BLANK);
headerCell.setCellValue(titre);
row = feuille.createRow(index + 6);
Cellules HSSFCell = row.createCell(0);
cellules.setCellType(HSSFCell.CELL_TYPE_BLANK);
ByteArrayOutputStream outStream = new ByteArrayOutputStream(); // Écrit l'image dans le flux
BufferedImage bufferImg = ImageIO.read(new File(req.getRealPath("pic/"+fileName+".jpg")));
ImageIO.write(bufferImg, "PNG", outStream); // Utilisez HSSFPatriarch pour écrire des images dans EXCEL
HSSFPatriarch patri = sheet.createDrawingPatriarch();
Ancre HSSFClientAnchor = new HSSFClientAnchor(5, 5, 5, 5,
(court) 1, indice + 6, (court) 6, 45);
patri.createPicture(ancre, workbook.addPicture(
outStream.toByteArray(), HSSFWorkbook.PICTURE_TYPE_PNG));
essayer {
workbook.write(out);
out.flush();
out.close();
} catch (IOException e) {
e.printStackTrace();
}