找回密码
 立即注册

QQ登录

只需一步,快速开始

Chinaiss

注册会员

7

主题

14

帖子

57

积分

注册会员

积分
57
最新发帖
Chinaiss
注册会员   /  发表于:2017-2-8 09:52  /   查看:4301  /  回复:4
为什么保存为xml格式时,有包含ActiveSheet.Tag的属性,保存为xlsx格式后,ActiveSheet.Tag的属性值丢失
代码如下:

public MainWindow()
        {
            InitializeComponent();
            this.Loaded += MainWindow_Loaded;
        }

        void MainWindow_Loaded(object sender, RoutedEventArgs e)
        {
            GcSpreadSheet spread2 = new GcSpreadSheet();
            using (MemoryStream stream = new MemoryStream(GetXlsxFormatFileContent()))
            {
                spread2.OpenExcel(stream);
                //spread2.OpenXml(stream);
            }
            object tag = spread2.ActiveSheet.Tag;
            MessageBox.Show(tag == null ? "不存在Tag值" : tag.ToString());
        }

        private byte[] GetXlsxFormatFileContent()
        {
            GcSpreadSheet spread1 = new GcSpreadSheet();
            spread1.ActiveSheet.Tag = "这是Tag属性";
            spread1.ActiveSheet.Cells[0, 0].Text = "这是A1";

            using (MemoryStream stream = new MemoryStream())
            {
                spread1.SaveExcel(stream, ExcelFileFormat.XLSX, ExcelSaveFlags.SaveAsViewed);
                //spread1.SaveXml(stream);
                return stream.ToArray();
            }
        }

4 个回复

倒序浏览
Chinaiss
注册会员   /  发表于:2017-2-8 10:15:58
沙发
同时单元格的Tag也丢失
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-2-8 10:49:33
板凳
您好,Excel 是没有tag这个概念的,所以导出后也没有地方可保存。
tag是给开发人员使用保存临时信息的。
回复 使用道具 举报
Chinaiss
注册会员   /  发表于:2017-2-8 11:20:36
地板
因为当前同时使用GcSpreadSheet和SpreadJS控件,现在GcSpreadSheet保存文件后在SpreadJS展示文件及录入。因为SPreadJS不支持带入XML文件,除了两个控件都保存为Xlsx方案(无tag属性,tooltip原本都保存在tag属性,tooltipd丢失)外还有其他方案可使用吗
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-2-8 14:18:34
5#
一般方案都是模板和数据分开保存,模板可以保存为Excel,数据在数据库里存放,展示的时候再设置到页面上。
您可情况可以专门将所有tag单独保存一个文件,spreadjs加载时候也去读取这个设置。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部