XLS 格式的 excel 里的 XFS = 16*XF [XFCRC 16*4050XFExt],和这个 16 * 和 16*4050 是什么意思?

98 天前
 zurmokeeper

查看 xls 格式的 excel 里的组成内容时,发现里面有个部分是 XFS ,表示 XF 的集合内容,

XFS = 16* XF [XFCRC 16*4050XFExt] 我想意思大概是有 16 个 XF , 然后接下来的 XFCRC 是可选的,然后后面这个 16 * 4050XFExt 是真的不明白,XFExt 也是一个结构,只知道 4050 是 XFExt 里某个组成的最大值

因为我把 WPS 新建的一个 xls 解析出来看了下,我新建的这个有 64 个 XF ,所以这里 16*XF ,是指 16 的倍数个 XF ?

还有类似的 FORMATTING = 1* 510Font 8* 218Format XFS *DXF STYLES [TABLESTYLES] [Palette] [ClrtClient]

这个 1* 510Font 8* 218Forma 都不明白是什么意思,还说这个 * 有特别的意思?

xls 组成文档地址

1362 次点击
所在节点    程序员
7 条回复
feiyan35488
98 天前
可以看 poi 的源码
iapplebear
98 天前
chatGPT:

在 Excel 的二进制文件格式(如 XLS 格式)中,XFS 表示一个单元格格式的集合,其中包括了多个 XF ( Extended Format )记录。XF 记录用于描述单元格的显示格式和样式。让我们详细解析一下:

16*XF:这表示有 16 个 XF 记录。这些记录描述了单元格的样式和格式。

XFCRC 16*4050XFExt:

XFCRC:这通常是一个校验值,用于验证 XF 记录的完整性。
16*4050XFExt:这表示有 16 个长度为 4050 的 XFExt ( Extended XF )记录。XFExt 是扩展的 XF 记录,用于描述更复杂或更详细的格式信息。
在简化的解释中:

16*XF:文件中有 16 个 XF 记录。这些 XF 记录是基本的单元格格式信息。
XFCRC:这是校验和,用于确保 XF 记录的完整性。
16*4050XFExt:文件中有 16 个扩展的 XF 记录,每个记录的长度为 4050 字节。这些扩展记录提供了额外的格式和样式信息。
这些格式和样式信息可能包括字体、对齐方式、边框、背景颜色等详细的样式设置。这些信息是为了更精细地控制 Excel 工作簿中的单元格外观。

总结起来,这些表示法是为了描述 Excel 二进制文件中复杂的单元格格式信息。Excel 使用这些记录来管理和应用单元格的显示样式。
tool2dx
98 天前
我都是直接用 xml 或者 xlsx 导出数据,你这个二进制格式也太老了,微软自己都放弃了,完全没必要支持的。
jonathanchoo
98 天前
@iapplebear 16 年注册的号就这么没了吗
Desdemor
97 天前
4# 第一次好像只是降权
zurmokeeper
97 天前
@tool2dx 还是不少人反应有需要
zurmokeeper
97 天前
@iapplebear 我也不确定了,我把 xls 解析出来,XF 就是 64 个了,那就不会是 16 个 XF 了,而且 XFExt 的长度也不是 4050 ,只是最大长度是 4050

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1063484

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX