Java 如何使用JasperReports生成受密码保护的excel报告?
我正在尝试生成一个简单的受密码保护的excel报告 Java代码:Java 如何使用JasperReports生成受密码保护的excel报告?,java,jasper-reports,password-protection,Java,Jasper Reports,Password Protection,我正在尝试生成一个简单的受密码保护的excel报告 Java代码: import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.util.HashMap; import net.sf.jasperreports.engine.JRException; import net.sf.jasperreports.engine.JasperCompileMana
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.HashMap;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperCompileManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.export.JExcelApiExporter;
import net.sf.jasperreports.engine.export.JExcelApiExporterParameter;
public class Report {
public static void main(String[] args) {
try {
JasperReport jasperReport;
JasperPrint jasperPrint;
Connection connection = establishConnection();
HashMap jasperParameter = new HashMap();
jasperReport = JasperCompileManager.compileReport("D:\\Jasper\\report1.jrxml");
jasperPrint = JasperFillManager.fillReport(jasperReport, jasperParameter, connection);
JExcelApiExporter exporter = new JExcelApiExporter();
exporter.setParameter(JExcelApiExporterParameter.JASPER_PRINT, jasperPrint);
exporter.setParameter(JExcelApiExporterParameter.OUTPUT_FILE_NAME, "D:\\Jasper\\simple_report.xls");
exporter.setParameter(JExcelApiExporterParameter.PASSWORD, "sam");
exporter.exportReport();
} catch (JRException e) {
e.printStackTrace();
}
}
public static Connection establishConnection() {
Connection connection = null;
try {
Class.forName("com.mysql.jdbc.Driver");
String mySQL = "jdbc:mysql://localhost:3306/test";
connection = DriverManager.getConnection(mySQL, "root", "Infy123+");
connection.setAutoCommit(false);
} catch (SQLException | ClassNotFoundException exception) {
exception.printStackTrace();
}
return connection;
}
}
report1.jrxml:
正在生成该文件,但没有密码保护
我正在使用JasperReports-5.5.0和iReport 5.5.0
如何解决此问题?您可以使用JasperReport中提供的内置POI api禁用Excel报告的编辑。但是,excel仍然可以打开 密码保护仅适用于Excel编辑选项 我还想知道是否有办法对excel文档本身进行密码保护。。在Apache POI中找不到任何内容