用MIME格式描述多工作表Excel文件
上次说了使用MIME格式描述多内容的Excel文件,那么如果我希望描述一个有多工作表(sheet)的Excel文件,是否也同样能办到呢?因为很多时候我们需要把一系列的多个表格导入一个Excel文件中保存,对多工作表的支持是非常重要的功能,否则单Sheet的Excel文件如同鸡肋的说。
其实我们完全可以按照上次的说明,生成一个MIME格式描述的Excel文件先,然后加入对多sheet的描述就可以了。对多sheet支持的MIME描述是文件中一个单独的节,如下是一个描述了4个sheets的节:
------BOUNDARY_9527----
Content-Location: file:///C:/0E8D990C/MimeExcel.xml
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html; charset="us-ascii"

<html xmlns:o=3D"urn:schemas-microsoft-com:office:office"
xmlns:x=3D"urn:schemas-microsoft-com:office:excel"
xmlns=3D"http://www.w3.org/TR/REC-html40">

<head>
<xml>
<x:ExcelWorkbook>
<x:ExcelWorksheets>
<x:ExcelWorksheet>
<x:Name>cnblogs</x:Name>
<x:WorksheetSource HRef=3D"cid:sheet001"/>
</x:ExcelWorksheet>
<x:ExcelWorksheet>
<x:Name>birdshome</x:Name>
<x:WorksheetSource HRef=3D"cid:sheet002"/>
</x:ExcelWorksheet>
<x:ExcelWorksheet>
<x:Name>mime</x:Name>
<x:WorksheetSource HRef=3D"MimeExcel/sheet003.xml"/>
</x:ExcelWorksheet>
<x:ExcelWorksheet>
<x:Name>excel</x:Name>
<x:WorksheetSource HRef=3D"MimeExcel/sheet004.xml"/>
</x:ExcelWorksheet>
</x:ExcelWorksheets>
</x:ExcelWorkbook>
</xml>
</head>
</html>
其实最关键的就是<x:WorksheetSource HRef=3D"cid:sheet002"/>节点,它的属性HRef表示一个Sheet的ID,这个ID和上次说的图片引用一样,可以使Content-Location描述,也可是Content-ID来描述,只要引用的时候注意配对就行了。
各个Sheet的描述就和"多内容"一文中说的格式一样。比如sheet001:
------BOUNDARY_9527----
Content-ID: sheet001
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html; charset="us-ascii"

<html xmlns:o=3D"urn:schemas-microsoft-com:office:office"
xmlns:x=3D"urn:schemas-microsoft-com:office:excel"
xmlns=3D"http://www.w3.org/TR/REC-html40">

<head>
<xml>
<x:WorksheetOptions>
<x:ProtectContents>False</x:ProtectContents>
<x:ProtectObjects>False</x:ProtectObjects>
<x:ProtectScenarios>False</x:ProtectScenarios>
</x:WorksheetOptions>
</xml>
</head>
<body>
<table>
<tr>
<td>cnblogs</td>
<td>cnblogs</td>
<td>cnblogs</td>
<td>cnblogs</td>
</tr>
</table>
</body>
</html>
本文MIME Execl文件示例下载:mime_excel.rar。显示效果如下图:

其实我们完全可以按照上次的说明,生成一个MIME格式描述的Excel文件先,然后加入对多sheet的描述就可以了。对多sheet支持的MIME描述是文件中一个单独的节,如下是一个描述了4个sheets的节:


































其实最关键的就是<x:WorksheetSource HRef=3D"cid:sheet002"/>节点,它的属性HRef表示一个Sheet的ID,这个ID和上次说的图片引用一样,可以使Content-Location描述,也可是Content-ID来描述,只要引用的时候注意配对就行了。
各个Sheet的描述就和"多内容"一文中说的格式一样。比如sheet001:





























本文MIME Execl文件示例下载:mime_excel.rar。显示效果如下图:

posted on 2005-07-14 00:09 birdshome 阅读(6043) 评论(5) 编辑 收藏 举报
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器