Excel>bytes导表方案

发布时间:2026/11/5 6:50:53
Excel>bytes导表方案 为什么对于Excel表格要用紧密二进制不用json对于重复相同结构的列表、字典字段名会重复很多次多占用大量空间特别是字段名较长时。如果不是相同数据结构大量重复比如键值对配置就适合json。以及次要原因{}、、[]、:这些符号占用空间。Excel导bytes还有两种转换路线字符串具体类型byte[]一种是单元格字符串转换成C#对象int、float、bool、int[]、string[]、Vector3再把对象转换成byte[]BinaryWriter提供了把很多基本类型写入字节流的方法但是没有各种数组、Vector3、字典转换byte[]的方法要自己定义自己写字符串数据类型byte[]。运行时解析时把byte[]解析成各种对象解析byte[]对象还要自己写。有一些框架是用扩展方法给数组写转换、解析。字符串byte[]另一种是简单粗暴的把Excel单元格字符串用BinaryWriter写入byte[]运行时读取时还原字符串从字符串对象。这个转换要手写。要注意的是表格里的空单元格在bytes里要占位避免把一个字符串解析成错误的列。这里看BinaryWriter.Write()写入空字符串是只写入一个长度头。using(MemoryStream ms new MemoryStream()) using(BinaryWriter writer new BinaryWriter(ms)) { writer.Write(string.Empty); Debug.Log(ms.ToArray().Length); Debug.Log(BitConverter.ToString(ms.ToArray())); }这个方案要注意即使是int、bool、float这些基本类型也是写入了字符串解析时必须先读回字符串再Parse解析。那么这样又比直接写基本类型麻烦。并且不能整个文件就一堆字符串byte[]必须有办法分辨一行以及一共几行。分辨这些就是两种方案要么加长度头要么加结束符。那么在文件头加一个行数告诉循环读取多少次。每一行加\n的话那个是给字符串分割很方便BinaryReader识别\n反而不方便。每一行开头记录列数也没必要因为每一列是要填入对象字段的不用循环写结果就是不需要加任何行分割符就靠固定次数的读取字符串保证正确。混合方案那么我们发现对于int、float、boolBinaryWriter有转换方法直接转换byte[]、解析更简单对于List、Dictionary直接字符串转byte[]解析时转回字符串再解析手写代码更少不用再写字符串List、Listbyte[]、byte[]List。那么我们能不能把二者结合起来int、float、bool直接写其他用字符串。这样需要转换时判断类型行是不是int、float、bool但又没有必要每行判断一次每列的类型是固定的。如果不追求性能可以就每行判断一次。如果非要避免每行判断就要用多态给int、float、bool、string做Converter开始转换前遍历类型行得到一个Converter[]。关于BinaryWriter.Write(字符串)默认是UTF8编码在前面写一个字节记录内容的字节数。单纯UTF8编码、BinaryWriter.Write写入的内容对比顺序匹配二进制的缺点删字段、换字段顺序解析代码要跟着改EndOfStreamException: Unable to read beyond the end of the stream读到第一行最后一列遇到这个。FormatException: Too many bytes in what should have been a 7 bit encoded Int32.

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询