找回密码
 立即注册

QQ登录

只需一步,快速开始

bingdaoice

中级会员

44

主题

208

帖子

608

积分

中级会员

积分
608
bingdaoice
中级会员   /  发表于:2020-7-13 15:34  /   查看:9494  /  回复:17
1金币
使用以下方法插入行及内容到新的SheetView中,但自动换行的格式没有过去。
请问我如何设置可以将自动换行也同步过去。
图1模板是自动换行的。图2添加以后未自动换行
        private void AddPage(SheetView sv, int RowIndex, int tpId)
        {
            FpSpread Spread2 = new FpSpread();
            Spread2.Open(p_certif.GetRecdTempFile(tpId, false));
            sv.AddRows(RowIndex, Spread2.Sheets[0].RowCount);
            for (int r = 0; r < Spread2.Sheets[0].RowCount; r++)
            {
                for (int c = 0; c < Spread2.Sheets[0].ColumnCount; c++)// copy span;  
                {
                    var spans = Spread2.Sheets[0].GetSpanCell(r, c);
                    if (spans != null && spans.Row == r && spans.Column == c)
                    {
                        sv.AddSpanCell(RowIndex + r, c, spans.RowCount, spans.ColumnCount);
                    }
                    var cell = Spread2.Sheets[0].Cells[r, c];                    
                    if (!String.IsNullOrEmpty(cell.Formula))//copy formula and value
                    {
                        sv.SetFormula(RowIndex + r, c, cell.Formula);
                    }
                    else
                    {
                        sv.SetValue(RowIndex + r, c, cell.Value);
                    }
                    sv.SetTag(RowIndex + r, c, cell.Tag);
                    var style2 = Spread2.Sheets[0].GetStyleInfo(r, c);                    
                    if (style2 != null)
                    {
                        //style2 = Spread2.Sheets[0].GetStyleInfo(r, c, new StyleInfo());
                        sv.SetStyleInfo(RowIndex + r, c, style2);
                    }
                }
            }
        }


image.png966313171.png

image.png367473143.png




17 个回复

倒序浏览
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2020-7-13 17:00:29
沙发
你好,请上传完整的项目以重现问题
回复 使用道具 举报
bingdaoice
中级会员   /  发表于:2020-7-14 11:11:44
板凳
此DEMO可重现问题。可先使用“打开文件1"按扭,查看第62行:”不确定度/准确度等级/最大允许误差“这个单元格。是属于排好格式的。
然后重新打开程序,再使用button1按扭插入文档内容。此时再看第62行,上述单元格的内容就没有排列好了。

spread_插入行之后未自动换行.rar

14.35 MB, 下载次数: 1300

回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2020-7-14 11:24:08
地板
收到
回复 使用道具 举报
bingdaoice
中级会员   /  发表于:2020-7-15 13:06:03
5#
找到原因了吗?
有解决办法了吗?
谢谢!
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2020-7-15 18:56:01
6#
您好,今天已经做过验证,文本内容本身没有问题,不管是直接读取到界面上的Spread控件中还是通过SetValue方式设置,最终单元格中的值都是包含换行符的,因此在编辑后才会恢复换行,这个问题需要和研发同事确认是否是产品本身存在的问题。可能需要几天的时间,有新的进展我会及时在帖子中回复

  1. 不确定度/准确度等级/\n
  2. 最大允许误差
复制代码
回复 使用道具 举报
bingdaoice
中级会员   /  发表于:2020-7-16 08:34:16
7#
好的,谢谢版主。
1、另外想请问一下是否有方式。我在复制单元格内容时就检测原单元格是否多行显示?
我在新的新的单元格设置一下行不行?
但是我在用方法的时候好像没有获取Multiline和WordWrap的方法。
应该是我没有用对。
请问如何获取上面的属性后,再设置到新的单元格去?
image.png124444579.png


2、论坛登录时候的验证码能不能设置清楚一点?每天登录时都要变化很多次才能正确的输入。
image.png588204955.png
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2020-7-16 09:46:26
8#
1.Multiline和WordWrap主要是用于自动折行的,但是目前你这边的文本实际上是手动折行的(有换行符)比如
  1. 不确定度/准确度等级/\n最大允许误差
复制代码


,因此只需要检测文本本身是否有换行符就行,可以用cell.Value.ToString().Contain("\n")来确定,另外换行符也有可能是\r\n

2.抱歉验证码给你带来困扰,问题我会反馈给负责论坛维护的同事,另外,你可以勾选自动登录,这样在同一台电脑上一般不需要重新登录

回复 使用道具 举报
bingdaoice
中级会员   /  发表于:2020-7-16 10:14:02
9#
本帖最后由 bingdaoice 于 2020-7-16 10:22 编辑

是的,我感觉设置了这个自动换列,就可以正确的显示了。
但不知道通过代码是需要怎么样去判断,并设置。
谢谢版主
image.png866672668.png
image.png488957213.png

回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2020-7-16 10:38:40
10#
自动换行和手动换行确实不一样,你现在碰到的手动换行没有正确显示的问题这样解决不行的
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部