带模式映射的XLSX到XML

2024-06-20 14:58:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我在映射到XML模式的XLSX工作簿上使用XML工具构建了两个基本工作流。你可以在电子表格中输入数据,导出XML,然后我有一些脚本来处理这些数据。在

现在,我正试图消除这一步骤,并通过从XSLT/XQuery迁移到Python来构建一个更集成和可移植的工具,其他人可以轻松地使用它。我仍然希望使用Excel进行数据输入,但是让Python脚本直接读取XLSX文件。在

我发现有很多易于使用的库可以从Excel中读取,但是它们需要显式地声明数据所在的单元格,比如range('A1:C2')等。使用XML映射的有用之处在于,用户可以调整甚至移动表以适应不同的行和重命名工作表。他们的图书馆能让我选择表格作为单位吗?在

我尝试的另一种方法是解压缩XLSX并直接解析XML。问题在于,我们的数据相当复杂(需要30-50张表),在未压缩的XLSX结构中解析这些数据确实令人望而生畏。我确实在未压缩的XLSX中找到了我的XML模式,那么有没有办法在Excel之外将数据重新格式化成这个模式?(基本上是当我将工作簿保存为.xml文件时Excel所做的工作)


Tags: 文件工具数据脚本声明模式步骤range
1条回答
网友
1楼 · 发布于 2024-06-20 14:58:36

Excel格式由于组件之间的依赖关系而非常复杂,例如,您不能确定工作表文件夹中工作表的顺序与文件在Excel中的外观有任何关系。在

我真的不明白您到底想做什么,但是现有的库为隐藏XML层的客户机代码提供了一个接口。如果你不想这样做,你就得到处寻找你认为有用的部分。在openpyxl中,您希望查看openpyxl/reader中的内容,特别是{}。在

但是,使用lxml可能会更幸运,因为这(在后台使用libxml2)将允许您将单个XML加载到Python中,并直接使用.objectify()方法对其进行操作。我们在openpyxl中没有这样做,因为XML树消耗大量内存(许多人有非常大的工作表),但是Powerpoint的库显示了这是多么容易。在

相关问题 更多 >