找回密码
 立即注册

QQ登录

只需一步,快速开始

xiwu

中级会员

97

主题

445

帖子

910

积分

中级会员

积分
910

活字格认证

xiwu
中级会员   /  发表于:2018-9-4 14:26  /   查看:3102  /  回复:6
想将当前sheet添加到已有的xml(如A .xml )文件中,目前出现的问题在A文件中新建了一个sheet,但是没有成功,请大神帮忙看一下代码哪里写得不对
以下是全部代码:
FpSpread fp_临时 = new FpSpread();
            try
            {
                OpenFileDialog dlg = new OpenFileDialog();
                dlg.Filter = "FpXml(*.xml)|*.xml";
                dlg.Title = "选择需添加的进度指标文件";
                if (dlg.ShowDialog() == DialogResult.OK)
                {
                    //判断文件是不是进度指标文件
                    fp_临时.Open(dlg.FileName);
                    foreach (SheetView sv in fp_临时.Sheets)
                    {
                        if (sv.Cells[0, 6].Text != "正洞Version1.0")
                        {
                            MessageBox.Show("你选择的文件不是施工组织进度文件,退出!");
                            return;
                        }
                    }
                    //先检查有没有备份数据
                    ArrayList al = new ArrayList();
                    for (int k = 0; k < fp_临时.Sheets.Count; k++)
                    {
                        al.Add(fp_临时.Sheets[k].SheetName);
                    }
                    if (al.Count == 0)
                    {
                        MessageBox.Show("原文件中无施工进度指标数据");
                        return;
                    }
                    else
                    {
                        string newSheetName = "";
                        FrmC fb = new FrmC();
                        fb.ListValue = al;
                        fb.ShowDialog();
                        if (fb.DialogResult == DialogResult.OK)
                        {
                            newSheetName = fb.TableName;
                            foreach (string s in al)
                            {
                                if (s == newSheetName)
                                {
                                    MessageBox.Show("输入的文件名已存在,请重新输入");
                                    return;
                                }
                            }
                            if (newSheetName == "")
                            {
                                return;
                            }
                            FarPoint.Win.Spread.SheetView newsheet = new FarPoint.Win.Spread.SheetView();
                            newsheet.SheetName = newSheetName;
                            fp_临时.Sheets.Add(newsheet);                    
                            string filename = Sys.GetAssemblyPath() + "sgzzTemp.xml";
                            fpSpread1.Save(filename, false);
                            if (fp_临时.Sheets[newSheetName] != null)
                            {
                                fp_临时.Sheets[newSheetName].Open(filename);
                            }
                           
                            //设置格式
                            fp_临时.TabStripPolicy = TabStripPolicy.Always;
                            fp_临时.VerticalScrollBarPolicy = ScrollBarPolicy.Always;
                            fp_临时.Save(dlg.FileName, false);
                            File.Delete(filename);//删除文件
                            System.Windows.Forms.MessageBox.Show("保存成功", "", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        }
                    }
                }
            }
            catch
            {
                MessageBox.Show("保存进度指标出错", "错误");
            }

6 个回复

倒序浏览
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2018-9-4 17:18:54
沙发
fpSpread1.Save(filename, false); 保存的是spread 的xml不是sheet的。
后面你又直接用sheet去open这个xml是不行的 fp_临时.Sheets[newSheetName].Open(filename);
而且我不太明白你这里的逻辑,先保存,再打开
回复 使用道具 举报
xiwu
中级会员   /  发表于:2018-9-4 17:46:19
板凳
按了无数次F5,终于等到你的回复了。先保存再打开,是因为之前在论坛上问过,不直接sheetview1 =sheetview2。
我想把当前的sheet,保存到已有的.xml中,请问,正确的操作应该怎么做?
回复 使用道具 举报
xiwu
中级会员   /  发表于:2018-9-4 17:58:54
地板
问题解释:如:原xml有两个sheet(A,B),把当前sheet保存进去就变成了A,B,C
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2018-9-5 09:23:48
5#
应该是 fpSpread1.Sheets[0].Save(filename, false);

您要复制那个sheet把哪个sheet保存为xml,然后再open
回复 使用道具 举报
xiwu
中级会员   /  发表于:2018-9-5 09:52:21
6#
问题解决了,万分感谢!
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2018-9-5 10:41:37
7#
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部