首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OpenXML -以错误的顺序写出行,导致数据丢失

OpenXML -以错误的顺序写出行,导致数据丢失
EN

Stack Overflow用户
提问于 2013-02-26 07:12:52
回答 1查看 790关注 0票数 1

我正在使用openxml-sdk生成一个excel文件,当打开该文件时,它告诉我该文件已损坏,并提出修复它。修复将执行以下操作:

代码语言:javascript
复制
Removed Records: Cell information from /xl/worksheets/sheet.xml part
Repaired Records: Cell information from /xl/worksheets/sheet.xml part

这种修复会导致一些数据的丢失,我查看了XML,发现数据似乎被删除了,因为当遇到合并的单元格时,行的写入顺序被打乱了。

代码语言:javascript
复制
<x:sheetData>
    <x:row r="8">
         ...
    </x:row>
    <x:row r="16">
         ...
    </x:row>
    <x:row r="9">
         ...
    </x:row>
    <x:row r="10">
         ...
    </x:row>
    ...
</x:sheetData>
<x:mergeCells>
    ...
<x:mergeCell ref="C8:C16" />
    ...
</x:mergeCells>

如上图所示,存在C8:C16的合并,无论在哪里发生这样的合并,似乎都会写入第一行和最后一行,然后继续将所有行都放在中间。但是,当打开此excel时,似乎无法处理并删除所有无序的行(9-15)。

我已经通过手动重新排列XML中的行,然后重新压缩来确认这一点。然后,它将显示所有数据。

我猜这是因为我在第9行之前创建了第16行,这样我就可以进行合并了。有没有一种方法可以重新排序行,或者让excel来处理这个问题,而不必预先创建所有行?

EN

回答 1

Stack Overflow用户

发布于 2013-03-05 06:13:09

就Excel而言,您无法执行任何操作来使Excel接受按错误顺序写入的行。您必须以某种方式编写代码,以便以正确的顺序写出行。

-Eric

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15078346

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档