导出接口

BaskReport提供了一些Java API实现导出功能,可以用不同的类实现CSV,Excel,PDF,Word的导出,对应的导出类为:

  • com.basksoft.report.core.export.csv.CsvExport
  • com.basksoft.report.core.export.excel.ExcelExport
  • com.basksoft.report.core.export.excel.MultiExcelExport(多文件导出)
  • com.basksoft.report.core.export.pdf.PdfExport
  • com.basksoft.report.core.export.pdf.MultiPdfExport(多文件导出)
  • com.basksoft.report.core.export.word.WordExport

这些类都对应有如下的方法

    public void export(ReportInstance report,OutputStream outputStream) {
        //...
    }
    public void export(ReportInstance report,int pageIndex,OutputStream outputStream) {
        //...
    }

分别对应为导出所有和导出指定页内容,其中的ReportInstance对象可以容过如下的方法创建

FileIdentity identity = new FileIdentity(fileId, version);
ReportInstance reportInstance=ReportFactory.getInstance().makeReport(identity, parametersMap);

FileIdentity的两个构造函数:

  • fileId: 文件的ID
  • version: 文件的版本,可以为空,为空情况下就是当前设计状态的文件,你也可以指定一个版本进行文件导出

ReportFactory的makeReport的第二个参数对应为报表的参数。如果没有参数可以创建一个空的HahsMap对象。 参考代码

BaskFile baskFile = FileManager.ins.loadFile(1501);
FileIdentity identity = new FileIdentity(1501, baskFile.getVersion());
ReportInstance reportInstance=ReportFactory.getInstance().makeReport(identity, new HashMap<String, Object>());

FileOutputStream fop = null;
File file;
try {
    file = new File("c:/temp/order.pdf");
    // if file doesnt exists, then create it
    if (!file.exists()) {
        file.createNewFile();
    }
    fop = new FileOutputStream(file);
    //导出报表
    com.basksoft.report.core.export.pdf.PdfExport.getInstance().export(reportInstance, fop);
    fop.flush();
    fop.close();
} catch (Exception e) {
    e.printStackTrace();
} finally {
    try {
        if (fop != null) {
            fop.close();
        }
    } catch (IOException e) {
        e.printStackTrace();
    }
}

多文件导出

多文件导出目前支持Excel和PDF,可以用com.basksoft.report.core.export.excel.MultiExcelExport或com.basksoft.report.core.export.pdf.MultiPdfExport,接口说明:

    public void export(ReportInstance[] reports, OutputStream outputStream) {
        //..
    }

Excel多文件导出多个报表会被合并到一个Excel的多个Sheet页中, PDF则是页面的合并

results matching ""

    No results matching ""