当前位置: 首页 > news >正文

网站做的是哪方面的内容百度网络营销中心

网站做的是哪方面的内容,百度网络营销中心,网站建设自建与租用区别,淘宝客如何做返积分制网站前一篇我讲解了如何对接MiniMax实现FAQ,其实知识库不仅仅可以实现FAQ,还能实现帮助文档的查询,内部培训资料的查询等等,但是这些培训资料大部分是word版本的,并且有层级结构,比如标题1,标题1-1等…

前一篇我讲解了如何对接MiniMax实现FAQ,其实知识库不仅仅可以实现FAQ,还能实现帮助文档的查询,内部培训资料的查询等等,但是这些培训资料大部分是word版本的,并且有层级结构,比如标题1,标题1-1等等,这种层级结构AI是无法识别的,所以需要转换成markdown格式的,帮助文档还有一个问题就是相似问题容易混淆,比如A文档有联系人,B文档也有联系人,这时查联系人就会出现错误的情况,所以要在每个标题前加前缀,比如A文档的联系人,B文档的联系人,这些也希望能够在转换程序中实现.

代码实现

public class MDTest {@Testpublic void testMD() throws Exception {String preHeader = "A文档的";if (preHeader == null) preHeader = "";String path = "d:/333.docx";File file = new File(path);FileInputStream is = new FileInputStream(file);XWPFDocument document = new XWPFDocument(is);StringBuilder sb = new StringBuilder();for (IBodyElement e : document.getBodyElements()) {if (e instanceof XWPFParagraph) {XWPFParagraph paragraph = (XWPFParagraph) e;appendParagraphText(sb, paragraph, document, preHeader);} else if (e instanceof XWPFTable) {XWPFTable table = (XWPFTable) e;appendTableText(sb, table);} else if (e instanceof XWPFSDT) {sb.append(((XWPFSDT) e).getContent().getText());}sb.append('\n');}FileUtil.writeBytes(sb.toString().getBytes(), "d:/aaa.md");}private static boolean isHeadTitle(XWPFDocument document, XWPFParagraph paragraph) {String styleName = getStyleName(document, paragraph);return styleName.toLowerCase().startsWith("heading");}private static String getStyleName(XWPFDocument document, XWPFParagraph paragraph) {String styleId = paragraph.getStyleID();if (StringUtils.isNotEmpty(styleId)) {XWPFStyle style = document.getStyles().getStyle(styleId);return style.getName();}return "";}private static void appendTableText(StringBuilder text, XWPFTable table) {for (XWPFTableRow row : table.getRows()) {List<ICell> cells = row.getTableICells();for (int i = 0; i < cells.size(); i++) {ICell cell = cells.get(i);if (cell instanceof XWPFTableCell) {text.append(((XWPFTableCell) cell).getTextRecursively());} else if (cell instanceof XWPFSDTCell) {text.append(((XWPFSDTCell) cell).getContent().getText());}if (i < cells.size() - 1) {text.append("\t");}}text.append('\n');}}private static void appendParagraphText(StringBuilder text, XWPFParagraph paragraph, XWPFDocument document, String preHeader) {String styleName = getStyleName(document, paragraph);if (styleName.toLowerCase().startsWith("heading")) {String number = styleName.replaceAll(".*(\\d+)$", "$1");appendHeader(text, number, preHeader);}for (IRunElement run : paragraph.getRuns()) {text.append(run);}}private static void appendHeader(StringBuilder text, String number, String preHeader) {if (StringUtils.isEmpty(number)) return;int num = Integer.parseInt(number);for (int i = 0; i < num; i++) {text.append("#");}text.append(" ").append(preHeader);}
}

代码解析

我们先通过poi读取word文档,然后获取段落,getStyleName方法可以获取段落的样式,如果样式是heading 1,表示是标题1,heading 2是标题2,而markdown格式的标题1是# 标题,标题2是## 标题,这样就能实现转换,其余的直接按照文本放入就行了

效果

word形式

markdown形式

 

http://www.ds6.com.cn/news/43486.html

相关文章:

  • 长沙行业网站建设费用标准网上商城网站开发
  • 龙岗网站制作资讯自媒体平台注册入口官网
  • 徐州经济开发区网站淘宝推广平台
  • 沂源放心企业网站建设方案报价安徽网站建设优化推广
  • 温州微信网站开发怎样做网站
  • 建设网站jw100成都网站关键词排名
  • 如何不备案建网站seo推广软件品牌
  • 网站打包app互联网营销师培训
  • php网站的开发背景跨境电商平台有哪些
  • 菏泽哪里做网站seo关键词优化软件app
  • h5页面制作软件thinkphp湖南企业竞价优化服务
  • 卖灯杆的做网站好网络营销的四种形式
  • 做淘宝网站如何提取中间的提成宁波seo快速优化公司
  • 做网站是干嘛seo网络优化
  • 俄罗斯在线 网站制作有道搜索引擎入口
  • 网站如何做搜索引擎优化刷百度关键词排名
  • 推荐一个免费的网站杭州seo教程
  • 淘宝网站建设与规划上海企业网站推广
  • 哈尔滨+做网站公司有哪些公司推广宣传文案
  • 拿别的公司名字做网站自己做网站需要多少钱
  • 什么叫网站权重关键词工具
  • 做实体上什么网站找项目凡科网站建站教程
  • 做淘客的网站名称简述网络营销与传统营销的整合
  • 深圳做网站比较好百度网页版入口链接
  • 广东网站建设微信网站定制镇江百度关键词优化
  • 网站备案流程是什么游戏推广合作
  • wordpress 找不到文件搜索引擎优化方法总结
  • 委托网络公司做的网站侵权seo专业知识培训
  • 英文企业网站建设东莞百度seo新网站快速排名
  • 学院网站改造方案seo公司 上海