找回密码
 立即注册

QQ登录

只需一步,快速开始

rkk

银牌会员

14

主题

37

帖子

2749

积分

银牌会员

积分
2749

活字格认证

rkk
银牌会员   /  发表于:2014-5-13 17:13  /   查看:5040  /  回复:4
因我有多個 sheet, 要將數據結果獨立保存(用一個表), 因之後要做數據分析.
但欄位格式、公式、備注等如何保存? 及要對回原來的欄位?
我用的是 spread  .net  win Form

4 个回复

倒序浏览
iceman
社区贡献组   /  发表于:2014-5-13 18:33:00
沙发
回复 1楼rkk的帖子

rkk 你好,
请问是否想实现的是数据和格式分别保存?

Spread 提供了仅保存数据的方法:
  1. this.fpSpread1.SaveExcel("test.xlsx", FarPoint.Excel.ExcelSaveFlags.DataOnly);
复制代码


但是没有仅保存格式的方法。可以数据和格式一起保存。
  1. this.fpSpread1.SaveExcel("test.xlsx", FarPoint.Excel.ExcelSaveFlags.UseOOXMLFormat);
复制代码
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2014-5-20 11:05:00
板凳
回复 1楼rkk的帖子

请问问题进展如何?
回复 使用道具 举报
rkk
银牌会员   /  发表于:2014-6-11 12:35:00
地板
回复 3楼iceman的帖子

我需要保存到 SQL, 格式可否獨立保存? 因同時多人同時分欄位輸入, 所以保存時要獨立保存. 以免覆盖其他人的格式. tks!
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2014-6-11 17:03:00
5#
回复 4楼rkk的帖子

你好,
格式当前无法独立保存,只能独立保存数据。
保存到数据库可以先把 Spread 保存到流,在转化成 byte[] 存入数据库:
保存整个 Spread 对象:

  1.             MemoryStream stream = new MemoryStream();
  2.             fpSpread1.Sheets[0].Cells[0, 0].Text = "abc";
  3.             fpSpread1.Save(stream, false);
  4.             byte[] bts = new byte[stream.Length];
  5.             stream.Read(bts, 0, (int)stream.Length);
  6.             stream.Close();
复制代码



保存特定Sheet对象:

  1.             MemoryStream stream = new MemoryStream();
  2.             fpSpread1.Sheets[0].Cells[0, 0].Text = "abc";
  3.             fpSpread1.Sheets[0].Save(stream, false);
  4.             byte[] bts = new byte[stream.Length];
  5.             stream.Read(bts, 0, (int)stream.Length);
  6.             stream.Close();
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部