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

Amb*_*ber 2 c# excel serialization tabular

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

Ric*_*lly 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();
  }
}
Run Code Online (Sandbox Code Playgroud)

**更新**

在序列化实体大小和速度方面,Protobuf 远远优于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();
  }
}
Run Code Online (Sandbox Code Playgroud)