基于Excel转换的结构化PDF,如何在UiPath中生成结构化XML提取表格数据?
用UiPath生成结构化XML提取PDF表格数据
完全可以在UiPath里实现,不用依赖Adobe Pro或额外外部工具,具体步骤如下:
先提取PDF表格数据到结构化格式
因为你的PDF是Excel转换来的结构化文件,直接用UiPath内置的Extract PDF Table活动就能精准识别表格结构,输出标准的DataTable对象——这一步完全不需要正则表达式,比正则靠谱得多。如果表格有复杂合并单元格,还可以用Read PDF Text配合Generate Data Table活动来调整结构。用代码将DataTable转成带自定义标签的XML
添加一个Invoke Code活动,选择C#或VB语言,写代码把DataTable转换成符合你需求的结构化XML。比如下面是C#的示例代码,能给每一行、每一列生成对应标签:
// 从输入参数获取DataTable DataTable table = (DataTable)args["SourceTable"]; XmlDocument xmlDoc = new XmlDocument(); // 创建根标签 XmlElement rootNode = xmlDoc.CreateElement("Excel转换PDF表格"); xmlDoc.AppendChild(rootNode); // 遍历每一行生成XML节点 foreach (DataRow row in table.Rows) { XmlElement rowNode = xmlDoc.CreateElement("数据行"); rootNode.AppendChild(rowNode); // 遍历每一列生成对应标签 foreach (DataColumn col in table.Columns) { XmlElement colNode = xmlDoc.CreateElement(col.ColumnName); colNode.InnerText = row[col].ToString(); rowNode.AppendChild(colNode); } } // 保存XML到指定路径,也可以直接返回XML字符串 string outputPath = @"C:\YourPath\结构化数据.xml"; xmlDoc.Save(outputPath); args["OutputXmlPath"] = outputPath;
- 自定义标签结构(按需调整)
如果需要更复杂的XML结构,比如给节点加属性、嵌套子标签,直接修改代码里的XmlElement创建逻辑就行。比如给“数据行”加row-id属性,或者把特定列的内容包装成嵌套标签,完全能满足你的结构化需求。
注意:如果你的PDF是带格式的结构化文档(不是扫描件),UiPath的PDF活动识别率几乎是100%,不需要额外OCR工具。全程都在UiPath流程内完成,不用依赖外部软件。
内容的提问来源于stack exchange,提问作者Andy
相关产品推荐
相关产品推荐

