添加所有NPOI动态库。NPOINPOI.OOXMLNPOI.OpenXml4NetNPOI.OpenXmlFormatsICSharpCode.SharpZipLib

1、读取Word表格生成字符串

XWPFDocument docx = new XWPFDocument(stream);
var list = new List<XWPFTableCell>();
string result = "";
foreach (var row in docx.Tables[0].Rows)
{foreach (var cell in row.GetTableCells()){if (!list.Contains(cell)){list.Add(cell);result += cell.GetText() + "#";}}result += "\n";
}

2、读取Word表格生成XML

public XmlDocument GetTable(string wordFile)
{using (FileStream stream = File.OpenRead(wordFile)){XWPFDocument docx = new XWPFDocument(stream);var list = new List<XWPFTableCell>();var xml = new XmlDocument();var node = xml.CreateNode(XmlNodeType.XmlDeclaration, "", "");xml.AppendChild(node);var root = xml.CreateNode(XmlNodeType.Element, "Root", "");xml.AppendChild(root);var title = xml.CreateNode(XmlNodeType.Element, "Title", "");var year = xml.CreateNode(XmlNodeType.Element, "Year", "");var type = xml.CreateNode(XmlNodeType.Element, "Type", "");var text = xml.CreateNode(XmlNodeType.Element, "Text", "");root.AppendChild(title);title.AppendChild(year);title.AppendChild(type);title.AppendChild(text);var header = xml.CreateNode(XmlNodeType.Element, "Header", "");var totalOrder = xml.CreateNode(XmlNodeType.Element, "TotalOrder", "");var secondOrder = xml.CreateNode(XmlNodeType.Element, "SecondOrder", "");var date = xml.CreateNode(XmlNodeType.Element, "Date", "");var companyName = xml.CreateNode(XmlNodeType.Element, "CompanyName", "");var scope = xml.CreateNode(XmlNodeType.Element, "Scope", "");var whyUse = xml.CreateNode(XmlNodeType.Element, "WhyUse", "");var linkMan = xml.CreateNode(XmlNodeType.Element, "LinkMan", "");var phoneNum = xml.CreateNode(XmlNodeType.Element, "PhoneNum", "");var address = xml.CreateNode(XmlNodeType.Element, "Address", "");header.AppendChild(totalOrder);header.AppendChild(secondOrder);header.AppendChild(date);header.AppendChild(companyName);header.AppendChild(scope);header.AppendChild(whyUse);header.AppendChild(linkMan);header.AppendChild(phoneNum);header.AppendChild(address);root.AppendChild(header);var body = xml.CreateNode(XmlNodeType.Element, "Body", "");root.AppendChild(body);foreach (var table in docx.Tables){#regionfor (int i = 0; i < table.Rows.Count; i++){var row = table.Rows[i];for (int j = 0; j < row.GetTableCells().Count; j++){var cell = row.GetCell(j);if (!list.Contains(cell)){list.Add(cell);if (i == 0){var titleText = cell.GetText().Split(' ');year.InnerText = titleText[0];type.InnerText = titleText[1];text.InnerText = titleText[2];}else if (i == 1){switch (j){case 0:totalOrder.InnerText = cell.GetText();break;case 1:secondOrder.InnerText = cell.GetText();break;case 2:date.InnerText = cell.GetText();break;case 3:companyName.InnerText = cell.GetText();break;case 4:scope.InnerText = cell.GetText();break;case 5:whyUse.InnerText = cell.GetText();break;case 6:linkMan.InnerText = cell.GetText();break;case 7:phoneNum.InnerText = cell.GetText();break;case 8:address.InnerText = cell.GetText();break;default:break;}}else{switch (j){case 0:var totalOrder1 = xml.CreateNode(XmlNodeType.Element, "TotalOrder", "");totalOrder1.InnerText = cell.GetText();body.AppendChild(totalOrder1);break;case 1:var secondOrder1 = xml.CreateNode(XmlNodeType.Element, "SecondOrder", "");secondOrder1.InnerText = cell.GetText();body.AppendChild(secondOrder1);break;case 2:var date1 = xml.CreateNode(XmlNodeType.Element, "Date", "");date1.InnerText = cell.GetText();body.AppendChild(date1);break;case 3:var companyName1 = xml.CreateNode(XmlNodeType.Element, "CompanyName", "");companyName1.InnerText = cell.GetText();body.AppendChild(companyName1);break;case 4:var scope1 = xml.CreateNode(XmlNodeType.Element, "Scope", "");scope1.InnerText = cell.GetText();body.AppendChild(scope1);break;case 5:var whyUse1 = xml.CreateNode(XmlNodeType.Element, "WhyUse", "");whyUse1.InnerText = cell.GetText();body.AppendChild(whyUse1);break;case 6:var linkMan1 = xml.CreateNode(XmlNodeType.Element, "LinkMan", "");linkMan1.InnerText = cell.GetText();body.AppendChild(linkMan1);break;case 7:var phoneNum1 = xml.CreateNode(XmlNodeType.Element, "PhoneNum", "");phoneNum1.InnerText = cell.GetText();body.AppendChild(phoneNum1);break;case 8:var address1 = xml.CreateNode(XmlNodeType.Element, "Address", "");address1.InnerText = cell.GetText();body.AppendChild(address1);break;default:break;}}}}}#endregion            }return xml;}
}

C#使用NPOI操作Word表格相关推荐

  1. phpexcel_cell 获取表格样式_Java 操作Word表格——创建嵌套表格、添加/复制表格行或列、设置表格是否禁止跨页断行...

    精品推荐 国内稀缺优秀Java全栈课程-Vue+SpringBoot通讯录系统全新发布! Docker快速手上视频教程(无废话版)[免费] 作者:E-iceblue https://www.cnblo ...

  2. 黄聪:C#操作Word表格的常见操作

    几种常见C#操作Word表格操作有哪些呢?让我们来看看具体的实例演示: bool saveChange = false; //C#操作Word表格操作 object missing = System. ...

  3. NPOI导出word,NPOI导出word表格,NPOI复制table表格 XWPFDocument中XWPFTable

    NPOI导出word,NPOI导出word表格,NPOI复制table表格 XWPFDocument中XWPFTable 使用NPOI可以对Word中的文本做替换,当遇到表格时,单个表格也可以循环遍历 ...

  4. C# 操作word表格合并单元格

    C# 操作word表格 遇到合并单元格的时候,假设表格是3行6列 newTable.Cell(1, 1).Merge(newTable.Cell(1, 3));//合并第1行第1列到横向单元格合并,使 ...

  5. java操作跨页的word cell_Java 操作Word表格——创建嵌套表格、添加/复制表格行或列、设置表格是否禁止跨页断行...

    本文将对如何在Java程序中操作Word表格作进一步介绍.操作要点包括 如何在Word中创建嵌套表格. 对已有表格添加行或者列 复制已有表格中的指定行或者列 对跨页的表格可设置是否禁止跨页断行 创建表 ...

  6. Java 操作Word表格——创建嵌套表格、添加/复制表格行或列、设置表格是否禁止跨页断行

    本文将对如何在Java程序中操作Word表格作进一步介绍.操作要点包括 如何在Word中创建嵌套表格. 对已有表格添加行或者列 复制已有表格中的指定行或者列 对跨页的表格可设置是否禁止跨页断行 创建表 ...

  7. Java程序中操作Word表格

    本文将对如何在Java程序中操作Word表格作进一步介绍.操作要点包括 如何在Word中创建嵌套表格. 对已有表格添加行或者列 复制已有表格中的指定行或者列 对跨页的表格可设置是否禁止跨页断行 创建表 ...

  8. java 操作 word 表格和样式,java读取word表格中的表格 java如何读取word中的excel表格数据...

    Java 利用poi 可以直接读取word中的表格保持样式生1.读取word 2003及word 2007需要的jar包 读取 2003 版本(.doc)的word文件相对来说比较简单,只需要 poi ...

  9. Java 操作Word表格——创建嵌套表格、添加/复制表格行或列、设置表格是否禁止跨页断行...

    点击上方 "程序员小乐"关注公众号, 星标或置顶一起成长 每天凌晨00点00分, 第一时间与你相约 每日英文 Destiny decides who enters your lif ...

最新文章

  1. llvm常见问题 (FAQ)
  2. python函数的基础知识_Python入门基础知识点(函数进阶)
  3. Mac 安装laravel 框架
  4. 3.PHP条件语句及其字符串相关函数
  5. ireport修改jrxml中的sql语句_SQL中的create table与insert into语句
  6. Character.isLetterOrDigit(ch)判断ch是否为字母或数字
  7. linux配置redis服务,Linux下安装Redis并设置相关服务
  8. 编译源码时出现 Checking API: checkapi-last (unknown): error 17解决方法
  9. git push报错
  10. (转)采访 | ETHNews 对 Vitalik Buterin 的独家专访
  11. python读取内存指针_从dll读取内存值+指针+偏移量
  12. html代码表白_作为一个程序员,表白都要玩出花样
  13. 挑战杯创业计划书_基于云计算的下料优化软件_1. 执行总结
  14. PDF中加入HTML,将PDF导入/嵌入到HTML中(For PDF)
  15. jQuery手动触发事件
  16. 【开发新手福利】—Bootstrap运用终极指南
  17. Incremental Event Detection via Knowledge Consolidation Networks
  18. activeMQ安装问题wrapper | Launching a JVM... wrapper | Unable to execute Java command.
  19. 关于图片的像素,dpi与实际尺寸的关系
  20. 判断将输入字母,进行大写转小写,小写转大写

热门文章

  1. SD卡修复,无媒体,读不出来
  2. 超人气代码格式化工具prettier
  3. linux查看链路聚合的协商信息,Linux 链路聚合
  4. 深度linux 内核符号表,linux 内核符号表
  5. Spring AOP官网学习
  6. 我的Substance Designer 学习笔记02-PBR材质学习理解
  7. C++项目之演讲比赛模拟
  8. Mysql的MMM高可用群集
  9. 发票样板 html+css
  10. 加密指数有什么好买的?想象空间可能还没打开……