账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    SAX解析xlsx遇到workbook.xml和sheet.xml内容不规范,寻求好的解决方案,谢谢
    73
    0

    我在使用sax解析xlsx格式excel文件的时候遇到workbook.xml和sheet.xml内容不正常的情况, 具体是这样的:
    1.需求是获取excel中指定sheet数据,我计划是先解析workbook.xml中 <sheets>标签数据,比如:

    <workbook ...>
    ...
      <sheets>
        <sheet name="测试Sheet" r:id="rId3" sheetId="1"/>
      </sheets>
    </workbook>

    根据这个workbook.xmlsheet标签内容,来获得r:id值,然后直接读取指定sheet文件流,但是发现有些r:idsheetId并不是准确一一对应的,例如上面的内容,实际excel只有一个sheet 测试Sheet 那么r:id值应该是rId1但是这里是rId3, 导致我不知道怎么去匹配sheet.
    我一直没有找到合适的解决办法, 求助大家?

    2.在sheet.xml文件中, 获取开始、结束列和行号也不准确, 例如出现这种:

    <worksheet ...>
      <dimension ref="A1"/>
      ...
    </worksheet>

    正常情况下,标签<dimension 应该是 <dimension ref="A1:C15"/>这样的, 我原计划是打算通过这个来查找空单元格,现在我是通过解析cols标签来判断前中后是否有空单元格, 请问大家有什么好的解决办法处理这个问题?

    上面表述可能比较繁琐, 但是没有找到更简洁明了的表述, 如果大家有什么疑问麻烦回复下我, 帮我看看这两个问题, 非常感谢大家!!!

    0
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 11 元积分
        全部回答
    • 0
    • 蝌蚪小尾巴 普通会员 1楼

      SAX(Simple API for XML)是一种用于处理XML文档的编程语言。在处理Excel工作簿时,可能会遇到一些问题,比如文件的结构不规范,或者包含了一些我们不需要的内容。以下是一些可能的解决方案:

      1. 检查文件的结构:在打开Excel工作簿之前,你可以使用SAX解析器检查文件的结构。SAX解析器可以解析Excel文件,提取其中的数据,然后将其保存为XML文件。你可以使用SAX库(如org.apache.xml解析器)来创建一个SAX解析器,然后使用这个解析器来读取Excel文件。

      2. 使用XPath查询:XPath是一种在XML文档中查找和提取元素的方法。你可以使用XPath查询来查找包含你需要的数据的单元格。这种方法可以更灵活地处理Excel的工作表和工作簿。

      3. 使用正则表达式:正则表达式是一种强大的文本处理工具。你可以使用正则表达式来查找和提取Excel文件中的数据。例如,你可以使用正则表达式来查找所有的数据单元格,然后使用SAX解析器来读取这些数据。

      4. 使用Java的Apache POI库:Apache POI是一个开源的Java库,用于读取和写入Excel文件。使用POI库,你可以更方便地处理Excel文件,而且不需要编写复杂的XML解析代码。

      5. 使用Python的pandas库:pandas是一个强大的数据处理库,它可以轻松地读取和写入Excel文件。使用pandas库,你可以更方便地处理Excel文件,而且不需要编写复杂的XML解析代码。

      以上是一些可能的解决方案,具体使用哪种方法取决于你的具体需求。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部