package api;
import com.fr.base.Formula;
import com.fr.base.Parameter;
import com.fr.base.Style;
import com.fr.chart.chartattr.ChartCollection;
import com.fr.chart.web.ChartHyperPoplink;
import com.fr.chart.web.ChartHyperRelateCellLink;
import com.fr.chart.web.ChartHyperRelateFloatLink;
import com.fr.general.FRFont;
import com.fr.io.TemplateWorkBookIO;
import com.fr.js.EmailJavaScript;
import com.fr.js.JavaScriptImpl;
import com.fr.js.NameJavaScript;
import com.fr.js.NameJavaScriptGroup;
import com.fr.js.ParameterJavaScript;
import com.fr.js.ReportletHyperlink;
import com.fr.js.ReportletHyperlinkDialogAttr;
import com.fr.js.WebHyperlink;
import com.fr.main.impl.WorkBook;
import com.fr.report.cell.DefaultTemplateCellElement;
import com.fr.report.cell.FloatElement;
import com.fr.report.worksheet.WorkSheet;
import com.fr.stable.Constants;
import com.fr.stable.unit.OLDPIX;
import java.awt.Color;
/**
* 超级链接
*
* @author Administrator
*/
public class Hyperlink {
public static void main(String[] args) {
try {
ServerConnector.remote();
WorkSheet sheet = new WorkSheet();
link(sheet);
WorkBook workbook = new WorkBook();
workbook.addReport(sheet);
TemplateWorkBookIO.writeTemplateWorkBook(workbook, "超级链接.cpt");
} catch (Exception ex) {
ex.printStackTrace();
}
ServerConnector.disconnect();
}
private static void link(WorkSheet sheet) throws Exception {
DefaultTemplateCellElement cell = new DefaultTemplateCellElement(0, 0, "网络报表");
// 网络报表 _self _blank _dialog
// ReportletHyperlink h = new ReportletHyperlink("/WorkBook1.cpt", "_self");
// 对话框
ReportletHyperlink h = new ReportletHyperlink("WorkBook1.cpt", "_dialog");
ReportletHyperlinkDialogAttr attr = new ReportletHyperlinkDialogAttr();
// 标题
attr.setTitle(new Formula("now()"));
// 显示位置
attr.setCenter(false);
attr.setLeft(200);
attr.setTop(200);
h.setAttr(attr);
h.setWidth(300);
h.setHeight(200);
// 参数传递方式
h.setByPost(true);
// 是否继承报表参数
h.setExtendParameters(true);
// 展示参数界面
h.setShowParameterInterface(true);
// 参数
h.setParameters(new Parameter[] { new Parameter("p1", new java.util.Date()) });
NameJavaScriptGroup group = new NameJavaScriptGroup();
group.addNameHyperlink(new NameJavaScript("网络报表", h));
cell.setNameHyperlinkGroup(group);
FRFont font = FRFont.getInstance().applyUnderline(Constants.LINE_THIN);
font.setForeground(Color.BLUE);
cell.setStyle(Style.getInstance(font));
// 邮件
EmailJavaScript e = new EmailJavaScript();
// 密送
e.setBCC("");
// 抄送
e.setCC("");
// 收件人
e.setMailTo("");
// 是否显示模板内容
e.setShowTplContent(true);
// 标题
e.setTitle("title");
// 正文
e.setMainText("text");
group.addNameHyperlink(new NameJavaScript("邮件", e));
// 网页链接
WebHyperlink wl = new WebHyperlink("http://www.baidu.com", "_dialog");
wl.setWidth(200);
wl.setHeight(200);
// 是否继承报表参数
wl.setExtendParameters(true);
group.addNameHyperlink(new NameJavaScript("网页链接", wl));
// 动态参数
ParameterJavaScript pl = new ParameterJavaScript();
pl.setParameters(new Parameter[] { new Parameter("ppp", 123) });
group.addNameHyperlink(new NameJavaScript("动态参数", pl));
// JavaScript脚本
JavaScriptImpl jl = new JavaScriptImpl("alert(ddd);");
jl.setParameters(new Parameter[] { new Parameter("ddd", new Formula("now()")) });
jl.addJSImort("scripts/js/my.js");
group.addNameHyperlink(new NameJavaScript("JavaScript脚本", jl));
// 图表超链-悬浮窗图表
ChartHyperPoplink cl = new ChartHyperPoplink();
cl.setWidth(300);
cl.setHeight(300);
cl.setChartDigTitle("ttt");
cl.setParameters(new Parameter[] { new Parameter("ddd", new Formula("now()")) });
ChartCollection cc = new ChartCollection();
cc.addNamedChart("柱形图", api.chart.ColumnChart.getChart());
cl.setChartCollection(cc);
group.addNameHyperlink(new NameJavaScript("图标超链-悬浮窗图表", cl));
// 图表超链-联动单元格
ChartHyperRelateCellLink ccl = new ChartHyperRelateCellLink("A2");
ccl.setParameters(new Parameter[] { new Parameter("ddd", new Formula("now()")) });
group.addNameHyperlink(new NameJavaScript("图标超链-联动单元格", ccl));
// 图表超链-联动悬浮元素
FloatElement fl = new FloatElement(new Formula("now()"));
fl.setName("Float0");
fl.setLeftDistance(new OLDPIX(200));
sheet.addFloatElement(fl);
ChartHyperRelateFloatLink ff = new ChartHyperRelateFloatLink("Float0");
ff.setParameters(new Parameter[] { new Parameter("ddd", new Formula("now()")) });
group.addNameHyperlink(new NameJavaScript("图标超链-联动悬浮元素", ff));
cell.setNameHyperlinkGroup(group);
sheet.addCellElement(cell);
}
}
单元格超级链接
最新推荐文章于 2022-07-27 11:54:51 发布
该博客详细展示了如何使用Java代码创建和管理Excel工作簿中的各种超级链接,包括报告内链接、邮件链接、网页链接、动态参数、JavaScript脚本、图表超链接等,涉及报表参数传递、对话框设置、样式配置等多个方面。
摘要由CSDN通过智能技术生成