找回密码
 立即注册

QQ登录

只需一步,快速开始

Julie_Zhao
论坛元老   /  发表于:2013-1-5 14:29  /   查看:6046  /  回复:3
版主大人:

  你好!又来打扰。

  目前项目中有一个报表是用Spread做的(6.0+VS2008),在导出时,其中有一列显示的文字是"aaa",此列被设定为HyperLinkCellType类型。

  然后在导出之后,我希望Excel显示是"aaa",而不是链接的URL,不知道版主大人是否有好的建议以帮助我解决这个问题呢?

  有点急,先谢谢!
Coding....

3 个回复

倒序浏览
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2013-1-5 17:52:00
沙发
回复 1楼Julie_Zhao的帖子

Julie_Zhao 你好

该功能的基本实现思路是在导出之前添加列并将原来HyperLinkCellType列中单元格的Value复制到新列单元格中,并隐藏HyperLinkCellType类;导出完毕之后显示HyperLinkCellType列并删除新添加的临时列。
  1.     protected void Button1_Click(object sender, EventArgs e)
  2.     {
  3.         FpSpread1.ActiveSheetView.Columns[0].Visible = false;
  4.         FpSpread1.ActiveSheetView.Columns.Add(0, 1);
  5.         FpSpread1.ActiveSheetView.Cells[0, 0].Value = "aaaa";
  6.         FpSpread1.SaveExcelToResponse("test.xls");
  7.         FpSpread1.ActiveSheetView.Columns.Remove(0,1);
  8.         FpSpread1.ActiveSheetView.Columns[0].Visible = true;
  9.     }
复制代码
回复 使用道具 举报
飞时
论坛元老   /  发表于:2013-1-9 13:04:00
板凳
我是再导出之前将该列类型转换了,源代码如下:      

string iPath = "~/upload/";
        string filename = "报销统计表_" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".xls";
        //如果子文件夹不存在,则创建它
        if (File.Exists(Server.MapPath(iPath)) == false)
        {
            Directory.CreateDirectory(Server.MapPath(iPath));
        }
        int i = 0;
        while (i < Grid1.Rows.Count)
        {
            Grid1.Cells[i, (int)Col.支付申请单号].CellType = new FarPoint.Web.Spread.TextCellType();

            i++;
        }
        if (Grid1.SaveExcel(Server.MapPath(iPath + "/" + filename), FarPoint.Web.Spread.Model.IncludeHeaders.ColumnHeadersCustomOnly) == true)
        {
            Response.Redirect(iPath + "/" + filename);
        }
        else
        {
            Response.Write("导出失败!");
        }
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2013-1-9 16:14:00
地板
谢谢 飞时 分享解决方案。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部