如何用elemen引用XML文件中的超链接

2024-10-02 02:33:02 发布

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

我正在尝试从一个用elementtree格式化为XML的Excel文件中移动数据,其中一些单元格有一个与它们相关联的超链接,我也想移动它们。你知道吗

输入如下:

<Workbook xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" xmlns:x="urn:schemas-microsoft-com:office:excel">
  <Table x:FullColumns="1" x:FullRows="1">
    <Row>
      <Cell ss:StyleID="headerCenterWrap">
        <Data ss:Type="String"><![CDATA[Change Order #]]></Data>
      </Cell>
      <Cell ss:StyleID="headerCenterWrap">
        <Data ss:Type="String"><![CDATA[Summary]]></Data>
      </Cell>
      <Cell ss:StyleID="headerCenterWrap">
        <Data ss:Type="String"><![CDATA[Change Type]]></Data>
      </Cell>
      <Cell ss:StyleID="headerCenterWrap">
        <Data ss:Type="String"><![CDATA[Status]]></Data>
      </Cell>
      <Cell ss:StyleID="headerCenterWrap">
        <Data ss:Type="String"><![CDATA[Sched Start]]></Data>
      </Cell>
      <Cell ss:StyleID="headerCenterWrap">
        <Data ss:Type="String"><![CDATA[Sched End]]></Data>
      </Cell>
      <Cell ss:StyleID="headerCenterWrap">
        <Data ss:Type="String"><![CDATA[Open Date]]></Data>
      </Cell>
      <Cell ss:StyleID="headerCenterWrap">
        <Data ss:Type="String"><![CDATA[Close Date]]></Data>
      </Cell>
      <Cell ss:StyleID="headerCenterWrap">
        <Data ss:Type="String"><![CDATA[Need By]]></Data>
      </Cell>
      <Cell ss:StyleID="headerCenterWrap">
        <Data ss:Type="String"><![CDATA[Category]]></Data>
      </Cell>
      <Cell ss:StyleID="headerCenterWrap">
        <Data ss:Type="String"><![CDATA[Risk]]></Data>
      </Cell>
      <Cell ss:StyleID="headerCenterWrap">
        <Data ss:Type="String"><![CDATA[Assignee]]></Data>
      </Cell>
      <Cell ss:StyleID="headerCenterWrap">
        <Data ss:Type="String"><![CDATA[Requester]]></Data>
      </Cell>
      <Cell ss:StyleID="headerCenterWrap">
        <Data ss:Type="String"><![CDATA[Priority]]></Data>
      </Cell>
      <Cell ss:StyleID="headerCenterWrap">
        <Data ss:Type="String"><![CDATA[Parent]]></Data>
      </Cell>
      <Cell ss:StyleID="headerCenterWrap">
        <Data ss:Type="String"><![CDATA[CAB Approver]]></Data>
      </Cell>
    </Row>
    <Row>
      <Cell ss:HRef="https://" ss:StyleID="string_url">
        <Data ss:Type="String"><![CDATA[3392348]]></Data>
      </Cell>
      <Cell ss:StyleID="string">
        <Data ss:Type="String"><![CDATA[[] ASSET:]]></Data>
      </Cell>
      <Cell ss:StyleID="string">
        <Data ss:Type="String" />
      </Cell>
      <Cell ss:StyleID="string">
        <Data ss:Type="String"><![CDATA[Assigned]]></Data>
      </Cell>
      <Cell ss:StyleID="string">
        <Data ss:Type="String" />
      </Cell>
      <Cell ss:StyleID="string">
        <Data ss:Type="String" />
      </Cell>
      <Cell ss:StyleID="date">
        <Comment>
          <Data><![CDATA[-05:00]]></Data>
        </Comment>
        <Data ss:Type="DateTime"><![CDATA[2019-04-25T09:31:54]]></Data>
      </Cell>
      <Cell ss:StyleID="string">
        <Data ss:Type="String" />
      </Cell>
      <Cell ss:StyleID="string">
        <Data ss:Type="String" />
      </Cell>
      <Cell ss:StyleID="string">
        <Data ss:Type="String" />
      </Cell>
      <Cell ss:StyleID="string">
        <Data ss:Type="String" />
      </Cell>
      <Cell ss:StyleID="string">
        <Data ss:Type="String" />
      </Cell>
      <Cell ss:StyleID="string">
        <Data ss:Type="String" />
      </Cell>
      <Cell ss:StyleID="string">
        <Data ss:Type="String"><![CDATA[3]]></Data>
      </Cell>
      <Cell ss:StyleID="string">
        <Data ss:Type="String" />
      </Cell>
      <Cell ss:StyleID="string">
        <Data ss:Type="String" />
      </Cell>
    </Row>
  </Table>
</Workbook>

问题是我不知道如何引用超链接字符串,以便在新文件中应用超链接。你知道吗

它看起来像是存储在样式表信息中,这是elementtree可以做的吗?你知道吗

我试过浏览elementtree的文档,但没有找到任何相关的内容。你知道吗

i = 0
for row in allrows:
    i += 1
    # print(row.tag + ' ', i)

    # Find all cells in this row
    allcells = list(row.iter('{urn:schemas-microsoft-com:office:spreadsheet}Cell'))

    # Start cell iteration here
    j = 0
    for cell in allcells:
        j += 1
        data = cell[0]
        # print(cell.tag + ' ', j, data.text)
        xworksheet.cell(row=i, column=j).value = data.text
        xworksheet.cell(row=i, column=j).hyperlink = cell.hyperlink

这是它的要点,但是elementree没有.hyperlink属性,所以它不工作。你知道吗


Tags: datastringtypecellschemasssrowelementtree
1条回答
网友
1楼 · 发布于 2024-10-02 02:33:02

除了我正在使用的xml文件的奇怪格式之外,它的注释者MarkTolonen似乎是对的。你知道吗

你知道吗{urn:microsoft com架构:办公室:电子表格}HRef=“https://”

我只是要做单元格属性['{urn:microsoft com架构:办公室:电子表格}HRef']而不是单元格属性['HRef']

相关问题 更多 >

    热门问题