找回密码
 立即注册

QQ登录

只需一步,快速开始

KingMan

中级会员

68

主题

148

帖子

554

积分

中级会员

积分
554
KingMan
中级会员   /  发表于:2017-6-2 19:10  /   查看:6389  /  回复:12
本帖最后由 KingMan 于 2017-6-2 19:11 编辑

我只想保存我选中的内容为byte[] 并保存文件,但是发现 它把页眉页脚都给保存啦,而我只是仅仅需要 我选中的那部分内容。如下面我仅仅需要保存表格,而不需要页面,但是保存文件后,重新加载,发现页眉页脚也保存进去啦
G({Q4X6380R{3EM9}(G}QY6.png10422972.png

保存的代码:
        private void button10_Click(object sender, EventArgs e)
        {
            Table pCurrentTable = textControl1.Tables.GetItem();
            if (pCurrentTable != null)
                 pCurrentTable.Select();
            //byte[] cData;
            //textControl1.Save(out cData, BinaryStreamType.InternalFormat);
            textControl1.Selection.Save(out uData, BinaryStreamType.InternalFormat);
            LocalFileManger.SaveFileToLocal("NurseTemplate", "NurseRecordx_28.bak", uData);
        }

加载代码:
  private void button9_Click(object sender, EventArgs e)
        {
            FileInfo fileMsg = null;
            byte[] bBytes = LocalFileManger.GetFileByte("NurseTemplate", "NurseRecordx_28.bak", out fileMsg);
            if (bBytes == null || bBytes.Length <= 0)
                return;
            textControl1.Selection.Load(bBytes, BinaryStreamType.InternalFormat);
        }


12 个回复

倒序浏览
gw0506
超级版主   /  发表于:2017-6-5 10:35:21
沙发
selection只有正文内容,不包含页眉页脚。你存的只是正文Table。页眉页脚没有存进去。
你可以把它save成word,直接就看到效果了。
回复 使用道具 举报
KingMan
中级会员   /  发表于:2017-6-7 11:22:38
板凳
gw0506 发表于 2017-6-5 10:35
selection只有正文内容,不包含页眉页脚。你存的只是正文Table。页眉页脚没有存进去。
你可以把它save成wo ...

我试过啦下,但是并没有达到效果。现在把DEMO程序附上,帮忙看下。

这个为一个文档文档,该文档有页眉和内容含有一个表格
\删除前面空行\bin\x86\Debug\NurseTemplate\NurseRecordx_28.bak

现在目的是想仅仅保存表格,不报错页眉页脚。但是调试啦几次都没有实现。
SC@{}]BTCXEF}KF1Q[6]F9Y.png55771788.png

删除前面空行.rar

96.8 KB, 下载次数: 117

回复 使用道具 举报
gw0506
超级版主   /  发表于:2017-6-7 16:29:10
地板
经过测试,你是对的,去不掉。我提交厂商了。
回复 使用道具 举报
gw0506
超级版主   /  发表于:2017-6-8 09:55:58
5#
厂商说这是设计。
解决办法只能是你保存的时候再创建一个TXcontrol,然后把selection的内容设置到新的tx里面,从这里Save,然后再把这个TX删掉。
回复 使用道具 举报
KingMan
中级会员   /  发表于:2017-6-8 10:13:11
6#
gw0506 发表于 2017-6-8 09:55
厂商说这是设计。
解决办法只能是你保存的时候再创建一个TXcontrol,然后把selection的内容设置到新的tx里 ...

好的,我尝试一下先
回复 使用道具 举报
gw0506
超级版主   /  发表于:2017-6-8 10:15:43
7#
好~
回复 使用道具 举报
KingMan
中级会员   /  发表于:2017-6-8 11:16:56
8#
本帖最后由 KingMan 于 2017-6-8 11:46 编辑
KingMan 发表于 2017-6-8 10:13
好的,我尝试一下先

我尝试创建一个TXControl对象,但是出现异常。
当然,这个异常可以通过先创建一个窗体然后拖控件过去,使得这个控件实例化需要的数据都完成,这样就不会异常。
现在我不想要这部分工作,直接通过代码实例化就可以啦,应该怎么实例化。

P(NT~%N)0FI8K@]1EFAWX1U.png506601256.png

另外,我通过窗体方式创建实例,格式化数据后,回写,会把我目标文档的页眉页脚给干掉啦
回复 使用道具 举报
gw0506
超级版主   /  发表于:2017-6-8 12:09:18
9#
我这里没有问题
  1.             textControl1.Selection.Save(out uData, BinaryStreamType.InternalFormat);

  2.             TextControl txcontrol = new TextControl();
  3.             textControl1.Load(uData, BinaryStreamType.InternalFormat);
复制代码
回复 使用道具 举报
KingMan
中级会员   /  发表于:2017-6-8 16:43:41
10#
本帖最后由 KingMan 于 2017-6-8 20:29 编辑
gw0506 发表于 2017-6-8 12:09
我这里没有问题

再请教两个问题:
1.有没有办法让相同列的相邻表不自动合并
2.如何在两个表中添加一个空行,该空行高度无限小


我在以往的帖子中找到了一个方法,
  • // 获取Table对象
  •     TXTextControl.Table tb = this.textControl1.Tables.GetItem(1001);
  •     this.textControl1.InputPosition = new TXTextControl.InputPosition(tb.Cells.GetItem(1, 1).Start - 2);
  •     textControl1.InputFormat.LineSpacing = 1;

但是,还是有点问题,就是偶尔有时会出现消除的时候出现空隙,试多几次就就正常啦。
6YGOLQ4E]YK5W[95DLD~WT3.png308710021.png
3[O80L50}T@%R{YUZRKCA]C.png64744872.png
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部