单元格超级链接

该博客详细展示了如何使用Java代码创建和管理Excel工作簿中的各种超级链接,包括报告内链接、邮件链接、网页链接、动态参数、JavaScript脚本、图表超链接等,涉及报表参数传递、对话框设置、样式配置等多个方面。
摘要由CSDN通过智能技术生成
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);
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值