قم بإنشاء الرسومات المقابلة بناءً على المعلمات التي تم تمريرها
انسخ رمز الكود كما يلي:
مخطط التحميل: الوظيفة (البيانات، العنصر) {
فار ذلك = هذا؛
يتطلب (['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({
النص: "هناك صعوبة في تحميل بيانات المخطط..."
});
خيار فار = {
تلميح الأداة : {
الزناد: "المحور"،
axisPointer: { // مؤشر المحور، مشغل المحور صالح
اكتب: 'shadow' // الافتراضي هو الخط المستقيم، واختياري: 'line' | 'shadow'.
}
},
أسطورة : {
البيانات: data.indis،
س : "يسار" ،
ذ : "أعلى"
},
صندوق الأدوات : {
عرض: صحيح،
التوجه : "عمودي" ،
س : "صحيح" ،
ذ : "المركز" ،
ميزة : {
علامة : {
إظهار : صحيح
},
عرض البيانات : {
عرض: صحيح،
للقراءة فقط: صحيح
},
النوع السحري : {
عرض: صحيح،
النوع: ['سطر'، 'شريط'، 'مكدس'، 'مبلط']
},
يعيد : {
إظهار : صحيح
},
حفظ كصورة : {
إظهار : صحيح
}
}
},
قابل للحساب: صحيح،
الرسوم المتحركة: كاذبة،
المحور س : [{
النوع: "الفئة"،
البيانات: data.grp
}]،
المحور ص : [{
النوع: "القيمة"،
منطقة الانقسام : {
إظهار : صحيح
}
}]،
السلسلة: data.bar.series
};
}
hideLoading();
myChart.setOption(option);
that.imgURL = myChart.getDataURL('png');//احصل على ترميز base64
});
},
initEChart : وظيفة () {
يتطلب التكوين({
المسارات:{
'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'
}
});
}
تمرير البيانات إلى الواجهة الخلفية
انسخ رمز الكود كما يلي:
القيام بالتصدير: وظيفة () {
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
تحويلة.Ajax.طلب({
عنوان URL: "المؤشر/exp2excl.mvc"،
المعلمات : {
إيمجورل:رابط،
اليسار: يحصل (يسار)
}
});
الدالة getS(د){
var arr = [],str;
for(var i=0;i<d.length;i++){
var s = IndiFn.getAxisStr(d[i]);
arr.push(s);
}
str = arr.join(',');
شارع العودة؛
}
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 وتوليد الصور
انسخ رمز الكود كما يلي:
public void base64TOpic(String fileName, HttpServletRequest req) {
// يقوم Base64 بفك تشفير سلسلة صفيف البايت وإنشاء صورة
if (imgsURl == null) // بيانات الصورة فارغة
يعود ؛
وحدة فك ترميز BASE64Decoder = new BASE64Decoder();
يحاول
{
String[] url = imgsURl.split("،);
سلسلة u = url[1];
// فك تشفير Base64
byte[] buffer = new BASE64Decoder().decodeBuffer(u);
// توليد الصور
OutputStream out = new FileOutputStream(new File(req.getRealPath("pic/"+fileName+".jpg")));
out.write(buffer);
out.flush();
out.Close();
يعود؛
}
قبض (الاستثناء ه)
{
يعود؛
}
}
رسم الصور من خلال بوي ووضع الصور في التفوق
انسخ رمز الكود كما يلي:
صف = ورقة. createRow(index+3);
HSSFCell headerCell = Row.createCell(0);
headerCell.setCellType(HSSFCell.CELL_TYPE_BLANK);
headerCell.setCellValue(title);
صف = ورقة. createRow(index + 6);
خلايا HSSFCell =row.createCell(0);
cell.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);// استخدم HSFPatriarch لكتابة الصور إلى EXCEL
HSSSFPatriarch patriarch =sheet.createDrawingPatriarch();
مرساة HSSFClientAnchor = 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 ه) {
printStackTrace();
}