是否有一种格式可以存储比excel更小的表格数据?

时间:2012-10-11 13:04:20

标签: c# excel serialization tabular

我已经尝试保留在文本文件中(显然它需要更多的空间,因为它没有自定义来保存表格,因为excel是)。我也试过保存序列化数据(c#,只是一个fyi)。两种情况都没有任何好处。

1 个答案:

答案 0 :(得分:5)

由于大多数“表格”数据都是文本,因此在保存之前压缩它会获得很大的收益(以GZip和BsonWriter为例):

public static byte[] Compress(object entity)
{
  using (var stream = new MemoryStream())
  {
    using (var zipStream = new GZipStream(stream, CompressionLevel.Optimal))
    {
      using (var writer = new BsonWriter(zipStream))
      {
        var serializer = new JsonSerializer();
        serializer.Serialize(writer, entity);
      }
    }

    return stream.ToArray();
  }
}

**更新**

Protobuf在序列化实体大小和速度方面是far superior to both XmlSerializerBinaryFormatter。在压缩之前尝试使用它来序列化您的实体:

public static byte[] Compress(object entity)
{
  using (var stream = new MemoryStream())
  {
    using (var zipStream = new GZipStream(stream, CompressionLevel.Optimal))
    {
      Serializer.Serialize(stream, entity);  
    }

    return stream.ToArray();
  }
}