2012-10-11 35 views
2

我已經試過保留在文本文件中(顯然它需要更多的空間,因爲它不像excel那樣自定義保存表格)。我也嘗試保持序列化數據(c#,只是一個fyi)。兩種情況都沒有任何好處。是否有可以存儲比excel小的表格數據的格式?

+1

你想完成什麼,爲什麼是大小問題? – lboshuizen

+1

請澄清你打算做什麼。你在尋找一個文件格式? – Gnosophilon

+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(); 
    } 
} 
+0

擊敗我,試圖說7zip,因爲這有一個良好的API和壓縮率和選項是好的。 – chris

+0

我曾經嘗試過,但壓縮比不夠好。我使用二進制和XML序列化。 – Amber

+1

@黃色更新。 –

相關問題