翻译|使用教程|编辑:王香|2018-11-14 10:38:51.000|阅读 621 次
概述:此示例演示如何使用Java导出对话框(Swing)将报表导出为各种格式。
# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>
相关链接:
此示例演示如何使用Java导出对话框(Swing)将报表导出为各种格式。
首先,创建JFrame并设置其选项。
public static void main(final String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
try {
JFrame frame = new JFrame();
frame.add(new ExportReportSettings(frame));
frame.setSize(FRAME_SIZE);
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
} catch (Throwable e) {
StiExceptionProvider.show(e, null);
}
}
});
}
接下来,我们需要加载报表以进行导出。我们使用SimpleList Report - 加载它并将Demo数据库添加到报表对象。在这些操作呈现报表之后。
private StiReport getReport() {
if (report == null) {
try {
String demoDir = "Data/";
StiXmlDatabase xmlDatabase = new StiXmlDatabase("Demo", demoDir + "Demo.xsd", demoDir + "Demo.xml");
StiReport renderReport = StiSerializeManager.deserializeReport(new File("Reports/SimpleList.mrt"));
renderReport.getDictionary().getDatabases().add(xmlDatabase);
renderReport.setCalculationMode(StiCalculationMode.Interpretation);
renderReport.Render(false);
report = renderReport;
} catch (Exception e) {
StiExceptionProvider.show(e, null);
}
}
return report;
}
接下来,在主面板上添加导出按钮。通过单击,每个按钮调用定义的导出功能。
JButton exportBtn = new JButton("Export to PDF");
exportBtn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
export(StiExportFormat.Pdf);
}
});
add(exportBtn);
exportBtn = new JButton("Export to XPS");
exportBtn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
export(StiExportFormat.Xps);
}
});
add(exportBtn);
exportBtn = new JButton("Export to HTML");
exportBtn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
export(StiExportFormat.Html);
}
});
add(exportBtn);
exportBtn = new JButton("Export to Text");
exportBtn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
export(StiExportFormat.Text);
}
});
add(exportBtn);
exportBtn = new JButton("Export to Rich Text");
exportBtn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
export(StiExportFormat.Rtf);
}
});
add(exportBtn);
...
最后,添加export()方法。此方法显示返回导出设置的导出对话框。使用这些导出设置将报表导出为所选格式。
private void export(StiExportFormat format) {
final StiReport report = getReport();
StiExportSettings settings = null;
switch (format) {
case Html:
settings = StiHtmlExportDialog.showDialog(parentFrame, false, 1);
break;
case ImageBmp:
case ImageJpeg:
case ImagePng:
case ImageSvg:
case ImageSvgz:
case ImagePcx:
settings = StiImageExportDialog.showDialog(parentFrame, false, 1);
break;
case Text:
settings = StiTxtExportDialog.showDialog(parentFrame, false, 1);
break;
case Rtf:
settings = StiRtfExportDialog.showDialog(parentFrame, false, 1);
break;
case Xps:
settings = StiXpsExportDialog.showDialog(parentFrame, false, 1);
break;
case Csv:
settings = StiDataExportDialog.showDialog(parentFrame, false, 1);
break;
case Word2007:
settings = StiWord2007ExportDialog.showDialog(parentFrame, false, 1);
break;
case Pdf:
settings = StiPdfExportDialog.showDialog(parentFrame, false, 1);
break;
case Excel:
settings = StiExcelExportDialog.showDialog(parentFrame, false, 1);
break;
default:
break;
}
if (settings != null) {
if (settings instanceof StiExcel2007ExportSettings) {
format = StiExportFormat.Excel2007;
} else if (settings instanceof StiExcelExportSettings) {
format = StiExportFormat.Excel;
} else if (settings instanceof StiExcelXmlExportSettings) {
format = StiExportFormat.ExcelXml;
} else if (settings instanceof StiSylkExportSettings) {
format = StiExportFormat.Sylk;
} else if (settings instanceof StiXmlExportSettings) {
format = StiExportFormat.Xml;
}
final StiFileSaveDialog stiFileChooser = new StiFileSaveDialog(format, report, report.getReportAlias());
int chooserResult = stiFileChooser.showSaveDialog(this);
if (chooserResult == JFileChooser.APPROVE_OPTION) {
FileOutputStream outputStream = null;
try {
outputStream = new FileOutputStream(stiFileChooser.getFile());
switch (format) {
case Pdf:
StiExportManager.exportPdf(report, (StiPdfExportSettings) settings, outputStream);
break;
case Xps:
StiExportManager.exportXps(report, (StiXpsExportSettings) settings, outputStream);
break;
case Html:
StiExportManager.exportHtml(report, (StiHtmlExportSettings) settings, outputStream);
break;
case Text:
StiExportManager.exportText(report, (StiTxtExportSettings) settings, outputStream);
break;
case Rtf:
StiExportManager.exportRtf(report, (StiRtfExportSettings) settings, outputStream);
break;
case Word2007:
StiExportManager.exportWord2007(report, (StiWord2007ExportSettings) settings, outputStream);
break;
case Excel2007:
StiExportManager.exportExcel2007(report, (StiExcel2007ExportSettings) settings, outputStream);
break;
case Excel:
StiExportManager.exportExcel(report, (StiExcelExportSettings) settings, outputStream);
break;
case ExcelXml:
StiExportManager.exportExcelXml(report, (StiExcelXmlExportSettings) settings, outputStream);
break;
case Csv:
StiExportManager.exportCsv(report, (StiCsvExportSettings) settings, outputStream);
break;
case Xml:
StiExportManager.exportXml(report, (StiXmlExportSettings) settings, outputStream);
break;
case Sylk:
StiExportManager.exportSylk(report, (StiSylkExportSettings) settings, outputStream);
break;
case ImageBmp:
StiExportManager.exportImageBmp(report, (StiBmpExportSettings) settings, outputStream);
break;
case ImageJpeg:
StiExportManager.exportImageJpeg(report, (StiJpegExportSettings) settings, outputStream);
break;
case ImagePcx:
StiExportManager.exportImagePcx(report, (StiPcxExportSettings) settings, outputStream);
break;
case ImagePng:
StiExportManager.exportImagePng(report, (StiPngExportSettings) settings, outputStream);
break;
case ImageSvg:
StiExportManager.exportImageSvg(report, (StiSvgExportSettings) settings, outputStream);
break;
case ImageSvgz:
StiExportManager.exportImageSvgz(report, (StiSvgzExportSettings) settings, outputStream);
break;
default:
break;
}
if (settings.isOpenAfterExport()) {
StiFileExecuter.openByExtension(stiFileChooser.getFile().getAbsolutePath());
} else {
JOptionPane.showMessageDialog(null, "Export finished");
}
} catch (FileNotFoundException e) {
StiExceptionProvider.show(e, null);
} catch (StiException e) {
StiExceptionProvider.show(e, null);
} finally {
if (outputStream != null) {
try {
outputStream.close();
} catch (IOException e) {
StiExceptionProvider.show(e, null);
}
}
}
}
}
}
示例代码的结果如下图所示:

购买Stimulsoft正版授权,请点击“”哟!
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@ke049m.cn