Foxtable(狐表)用户栏目专家坐堂 → 求助:多个表组合生成一个XML文件,已实现单个工作表生成实现XML,求助多个工作表怎么实现按照“起诉书编号”这个关联字段来对应生成XML文件呢?


  共有2094人关注过本帖树形打印复制链接

主题:求助:多个表组合生成一个XML文件,已实现单个工作表生成实现XML,求助多个工作表怎么实现按照“起诉书编号”这个关联字段来对应生成XML文件呢?

帅哥哟,离线,有人找我吗?
有点蓝
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:109736 积分:558396 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/11/1 10:48:00 [显示全部帖子]

类似


Dim xls As String = "F:\H\问题测试/工作簿.xls"
Dim book As new XLS.Book(xls)
Dim sheet As XLS.Sheet= book.Sheets(0)
Dim xml As String = "F:\H\问题测试/工作簿.xml"
Try
    Dim writer As New Xml.XmlTextWriter(xml, System.Text.Encoding.GetEncoding("utf-8"))
    writer.Formatting = System.Xml.Formatting.Indented
    '书写根元素()
    writer.WriteStartElement("case")
    For i As Integer = 1 To sheet.Rows.count -1
        '添加次级元素
        writer.WriteStartElement("caseRegistration")
        For j As Integer = 0 To sheet.Cols.count -1
            '添加子元素()
            writer.WriteElementString(sheet(0,j).value,sheet(i,j).value)
        Next
        Dim sheet2 As  XLS.Sheet= book.Sheets(1)
        For i2 As Integer = 1 To sheet2.Rows.count -1
            If sheet2(i2,0).value = sheet(i,0).value
                '添加次级元素
                writer.WriteStartElement("提交材料")
                For j2 As Integer = 0 To sheet2.Cols.count -1
                    
                    '添加子元素()
                    writer.WriteElementString(sheet2(0,j2).value,sheet2(i2,j2).value)
                Next
                '关闭次级元素DatabaseSetting
                writer.WriteEndElement()
            End If
        Next
        '关闭次级元素DatabaseSetting
        writer.WriteEndElement()
    Next
    '关闭根元素
    writer.WriteFullEndElement()
    '将XML写入文件并关闭writer
    writer.Close()
Catch ex As Exception
    MsgBox(ex.Message & vbCrLf & ex.StackTrace)
End Try

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:109736 积分:558396 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/11/1 14:44:00 [显示全部帖子]

WriteStartElement和WriteEndElement要成对出现,而且不能交叉嵌套,自己找找

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:109736 积分:558396 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/11/1 17:59:00 [显示全部帖子]

试试

Dim sheet130 As  XLS.Sheet= book.Sheets(0) '定义打开当前工作簿中的第1个工作表
For i As Integer = 1 To sheet130.Rows.count -1
    If sheet130(0,2).value = "节点名称" And sheet130(i,2).value > ""
        writer.WriteStartElement(sheet130(i,2).value)
    Else
        '添加次级元素
        writer.WriteStartElement("suitDocNumber")
    End If
    For j As Integer = 0 To sheet130.Cols.count -1
        '添加子元素()
        writer.WriteElementString(sheet130(0,j).value,sheet130(i,j).value)
    Next
    '关闭次级元素DatabaseSetting
    writer.WriteEndElement()
Next

另外If sheet1(i,0).value = sheet1(i,0).value这类代码多余的,去掉

 回到顶部