微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

XML中的空值,可从python转换为excel

如何解决XML中的空值,可从python转换为excel

当前尝试将excel spreedsheet转换为python中的xml文件。我正在使用以下框架代码

from openpyxl import load_workbook
from yattag import Doc,indent

wb = load_workbook("excel_file.xlsx")
ws = wb.worksheets[0]

# Create Yattag doc,tag and text objects

doc,tag,text = Doc().tagtext()
xml_header = '<?xml version="1.0" encoding="UTF-8"?>'
xml_schema = '<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"></xs:schema>'

doc.asis(xml_header)
doc.asis(xml_schema)

with tag('Row'):
    # Use ws.max_row for all rows
    for row in ws.iter_rows(min_row=2,max_row=100,min_col=1,max_col=5):
        row = [cell.value for cell in row]
        with tag("Row"):
            with tag("Column1"):
                text(row[2])
            with tag("column2"):
                text(row[1])
            with tag("string _ column"):
                text(row[0])
            with tag("Date_column"):
                text(row[3].strftime("%m/%d/Y"))
            with tag("integer column"):
                text(row[4])
result = indent(
    doc.getvalue(),indentation = '    ',indent_text = False
)
with open("xml_output_file_name.xml","w") as f:
    f.write(result)

过去,我在将excel的日期列输出到xml时确实遇到问题,但能够通过快速strftime(“%m /%d / Y”)来对日期列进行修复。

我的excel工作表大约有35列,数据本身就是这样,如果一列有一个单元格,则其他列中应该没有元素。因此,有些列缺少值,没关系。

最终,我要完成的工作是使xml输出可以获取columnf中这些缺失的元素。我希望输出是这样。

<Column1></Column1>

对于第1行,如果缺少第1列。在我的excel文件中,我有多个列,因此我也想将其应用于这些列。

有可能吗?我也确实研究了xsi:nil,但不确定是否会给我所需的输出和所需的形式。但是将其用作最后的手段。

当前,我已经能够运行代码,但是仅当我进入excel文件并将所有空单元格替换为“ NA”时才可以。以前的单元格为空,运行脚本时出现“非对象”错误。它确实可以与NA一起运行,但是它将作为该列的字符串读取,而那不是我想要的。

我如何实现

<column1></column1>

行中是否有空单元格?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。