找回密码
 立即注册

QQ登录

只需一步,快速开始

qd98zhq

论坛元老

12

主题

61

帖子

1万

积分

论坛元老

积分
15632

活字格认证

[已处理] 保存样式和公式

qd98zhq
论坛元老   /  发表于:2015-2-9 14:34  /   查看:10701  /  回复:12
问题如下:
1.现在我使用spreadsheet控件进行了绑定数据,而且使用了spread内部的公式功能,我想问这些公式是存储在哪些地方的,因为我保存数据后,再次打开该表,原来设置的公式我要提取进行还原。或是有什么好的方式进行这样情况的操作。
2.后面可能还会有其它方式对该spreadsheet界面其它编辑(字体,颜色,公式,函数等),反正总的说关于编辑speadsheet控件的设置参数是如何进行还原的,难道要重新保存整个工作簿?。
以上问题请赐教。谢谢。

12 个回复

正序浏览
iceman
社区贡献组   /  发表于:2015-3-2 09:38:00
13#
回复 12楼qd98zhq的帖子



为了给你提供更优质的服务,请对本次服务进行评分。我们会认真对待你提出的宝贵意见,谢谢
回复 使用道具 举报
qd98zhq
论坛元老   /  发表于:2015-3-2 09:23:00
12#
好的,感谢支持。
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2015-2-15 10:22:00
11#
回复 9楼qd98zhq的帖子

9# 问题可以通过以下方法解决:

  1.             var base64 = "MgAwADEANAAtADAANwAtADIANgDbj1VcxWC1URr/GpDHjyROKk4fZh9nhHZEjZllNmXGlgz/7nZNUhR4dnqEdtuPVVw6Tu9T5U6KYkkAVgALeo9ehHbokAZSn1L9gD5lMFJJAEUAT23IiWhWLU7Qj0yIDP8KAEZP0I9MiMePC3otThpPCWcATptOD2HzYA1OMFKEdu6VmJj6UbBzAjAKADIAMAAxADQALQAwADgALQAwADIA249VXMVgtVEa/7BzKFfvU+VOimJJAFYA404Leo9ehHZ7dlVfRmhMdWKXPmUwUkkARQAtTtCPTIgM/wlnhV+MW4RV248ATmVrjFuEVQIwCgAyADAAMQA0AC0AMAA4AC0AMAA5ANuPVVzFYLVRGv+wcyhXdGUqTpReKHULeo9e71PlTlNiBVOEdrllD18+ZTBSSQBFAC1O0I9MiAz/Rk8xdY5O11MwUnBlbmOTXr+L7pVCXIR2AF/RUyFqD19QljZSDP+wcyhX6lP9gNCPTIgoV0Bc31dRf4R2T23IiWhWLU4M/w1O/YDQj0yIKFeSTlSAUX+Edq9zg1gtTgz/f08odS1O2I8aT/pRsHMATptODU4OZoR2xWC1UQz/2I8JZ4VfjFuEVduPAE5lawOMdGWMW4RVAjAKADIAMAAxADQALQAwADgALQAxADYA249VXMVgtVEa/+52TVL9gIpiSQBWAAt6j174dnNRhHaoUgFgk15EAEwATAAM/1NiBVMQYkMAQQBCAIR2uWUPX9CPTIgoV0kARQBPbciJLU4M/wyAFE6hixJSU2KXewZcQwBBAEIABVPokHJ/MFJJAEkAUwANZ6FSaFYtTgz/2Y83aKJbN2Lvev2AuWW/T7+L7pUwUtFTA176UWVnhHYLeo9eDP9TYpd7C04qTh9mH2eEdgtOSlNoVNFTA17Zfktt1YvokH9PKHUATgtOAjAKAAoAMgAwADEANAAtADAAOQAtADIAMADbj1VcxWC1URr/jFuEVS1OLgAuAC4ACgA=";
  2.             var data = Convert.FromBase64String(base64);
  3.            string test = new string(Encoding.Unicode.GetChars(data));
复制代码


出现问题的原因是保存的Cell值无法直接序列号,所以Spread会自动转换成  Base64value 格式。所以在读取的时候要通过以上代码转换回来。

评分

参与人数 1满意度 +5 收起 理由
qd98zhq + 5 谢谢,问题已解决

查看全部评分

回复 使用道具 举报
iceman
社区贡献组   /  发表于:2015-2-13 17:57:00
10#
回复 9楼qd98zhq的帖子

当前调查进度:

  1.             var base64 = "MgAwADEANAAtADAANwAtADIANgDbj1VcxWC1URr/GpDHjyROKk4fZh9nhHZEjZllNmXGlgz/7nZNUhR4dnqEdtuPVVw6Tu9T5U6KYkkAVgALeo9ehHbokAZSn1L9gD5lMFJJAEUAT23IiWhWLU7Qj0yIDP8KAEZP0I9MiMePC3otThpPCWcATptOD2HzYA1OMFKEdu6VmJj6UbBzAjAKADIAMAAxADQALQAwADgALQAwADIA249VXMVgtVEa/7BzKFfvU+VOimJJAFYA404Leo9ehHZ7dlVfRmhMdWKXPmUwUkkARQAtTtCPTIgM/wlnhV+MW4RV248ATmVrjFuEVQIwCgAyADAAMQA0AC0AMAA4AC0AMAA5ANuPVVzFYLVRGv+wcyhXdGUqTpReKHULeo9e71PlTlNiBVOEdrllD18+ZTBSSQBFAC1O0I9MiAz/Rk8xdY5O11MwUnBlbmOTXr+L7pVCXIR2AF/RUyFqD19QljZSDP+wcyhX6lP9gNCPTIgoV0Bc31dRf4R2T23IiWhWLU4M/w1O/YDQj0yIKFeSTlSAUX+Edq9zg1gtTgz/f08odS1O2I8aT/pRsHMATptODU4OZoR2xWC1UQz/2I8JZ4VfjFuEVduPAE5lawOMdGWMW4RVAjAKADIAMAAxADQALQAwADgALQAxADYA249VXMVgtVEa/+52TVL9gIpiSQBWAAt6j174dnNRhHaoUgFgk15EAEwATAAM/1NiBVMQYkMAQQBCAIR2uWUPX9CPTIgoV0kARQBPbciJLU4M/wyAFE6hixJSU2KXewZcQwBBAEIABVPokHJ/MFJJAEkAUwANZ6FSaFYtTgz/2Y83aKJbN2Lvev2AuWW/T7+L7pUwUtFTA176UWVnhHYLeo9eDP9TYpd7C04qTh9mH2eEdgtOSlNoVNFTA17Zfktt1YvokH9PKHUATgtOAjAKAAoAMgAwADEANAAtADAAOQAtADIAMADbj1VcxWC1URr/jFuEVS1OLgAuAC4ACgA=";
  2.             var data = Convert.FromBase64String(base64);
  3.             var str = Encoding.UTF8.GetString(data);
  4.             Console.WriteLine(str);
复制代码


目前展示出来为乱码,应该是中文编码问题。
可以尝试在这个基础上解决,下周会继续进行调查。
回复 使用道具 举报
qd98zhq
论坛元老   /  发表于:2015-2-13 12:03:00
9#
我现在把数据保存为XML格式,其中数据的部分看到某些单元格文字比较多时,好像是用数据流的方式存储起来了(Base64value 的部分),如下所示,我想问的是这些数据流是加了一定的算法吗,如果我要单独提取出来显示正常的文字格式,然后进行额外保存的话我要怎么操作,代码如何写,请赐教,或是我要用什么样的方式进行还原显示出来。
          <CellBlock rc="10" cc="3">
            <Data>
              <C pos="0,0" type="0" value="程序改造工程" />
              <C pos="3,2" type="0" Base64value="True" value="MgAwADEANAAtADAANwAtADIANgDbj1VcxWC1URr/GpDHjyROKk4fZh9nhHZEjZllNmXGlgz/7nZNUhR4dnqEdtuPVVw6Tu9T5U6KYkkAVgALeo9ehHbokAZSn1L9gD5lMFJJAEUAT23IiWhWLU7Qj0yIDP8KAEZP0I9MiMePC3otThpPCWcATptOD2HzYA1OMFKEdu6VmJj6UbBzAjAKADIAMAAxADQALQAwADgALQAwADIA249VXMVgtVEa/7BzKFfvU+VOimJJAFYA404Leo9ehHZ7dlVfRmhMdWKXPmUwUkkARQAtTtCPTIgM/wlnhV+MW4RV248ATmVrjFuEVQIwCgAyADAAMQA0AC0AMAA4AC0AMAA5ANuPVVzFYLVRGv+wcyhXdGUqTpReKHULeo9e71PlTlNiBVOEdrllD18+ZTBSSQBFAC1O0I9MiAz/Rk8xdY5O11MwUnBlbmOTXr+L7pVCXIR2AF/RUyFqD19QljZSDP+wcyhX6lP9gNCPTIgoV0Bc31dRf4R2T23IiWhWLU4M/w1O/YDQj0yIKFeSTlSAUX+Edq9zg1gtTgz/f08odS1O2I8aT/pRsHMATptODU4OZoR2xWC1UQz/2I8JZ4VfjFuEVduPAE5lawOMdGWMW4RVAjAKADIAMAAxADQALQAwADgALQAxADYA249VXMVgtVEa/+52TVL9gIpiSQBWAAt6j174dnNRhHaoUgFgk15EAEwATAAM/1NiBVMQYkMAQQBCAIR2uWUPX9CPTIgoV0kARQBPbciJLU4M/wyAFE6hixJSU2KXewZcQwBBAEIABVPokHJ/MFJJAEkAUwANZ6FSaFYtTgz/2Y83aKJbN2Lvev2AuWW/T7+L7pUwUtFTA176UWVnhHYLeo9eDP9TYpd7C04qTh9mH2eEdgtOSlNoVNFTA17Zfktt1YvokH9PKHUATgtOAjAKAAoAMgAwADEANAAtADAAOQAtADIAMADbj1VcxWC1URr/jFuEVS1OLgAuAC4ACgA=" />
              <C pos="4,0" type="1" value="3" />
            </Data>
          </CellBlock>
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2015-2-12 17:46:00
8#
回复 7楼qd98zhq的帖子

4# 中即为保存的样式方法,目前需要做的是存储对应的 Cell 索引。
获取方法可以通过  StyleInfo 的 ReadXml 方法来获取。

我可以提供 XML 文件的读取方法,明天会尝试编辑。
自定义节点添加Cell索引等部分还需要您自主完成。

谢谢
回复 使用道具 举报
qd98zhq
论坛元老   /  发表于:2015-2-12 16:08:00
7#
你好,关于保存spreadsheet 表格样式格式与还原样式格式问题,现在我的想法是这样,我先把所有数据绑定列表的数据保存到数据库,然后清空所有数据,再把整个表格的所有样式保存成一个XML格式的文件,我的问题是能否直接快速通过之前保存的XML格式的文件把样式还原回来,如果可以,代码方面如何编写,能否给个DEMO,谢谢支持。
另外, GcSpreadSheet的API中文说明文档有没有呢,在哪里有下载。
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2015-2-11 11:14:00
6#
回复 5楼qd98zhq的帖子

好的,也祝您新春快乐。
回复 使用道具 举报
qd98zhq
论坛元老   /  发表于:2015-2-11 09:17:00
5#
感谢.我试一下,回头有什么问题再请教。先祝新年愉快 。
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部