JAVA使用POI读写word 乱码

写 public static void main(String args[]) throws Exception { XWPFDocument doc = new XWPFDocument(); XWPFParagraph p1 = doc.createParagraph(); p1.setAlignment(ParagraphAlignment.CENTER); p1.setBorderBottom(Borders.DOUBLE); p1.setBorderTop(Borders.DOUBLE); p1.setBorderRight(Borders.DOUBLE); p1.setBorderLeft(Borders.DOUBLE); p1.setBorderBetween(Borders.SINGLE); p1.setVerticalAlignment(TextAlignment.TOP); XWPFRun r1 = p1.createRun(); r1.setBold(true); r1.setText("The quick brown fox"); r1.setBold(true); r1.setFontFamily("Courier"); r1.setUnderline(UnderlinePatterns.DOT_DOT_DASH); r1.setTextPosition(100); XWPFParagraph p2 = doc.createParagraph(); p2.setAlignment(ParagraphAlignment.RIGHT); p2.setBorderBottom(Borders.DOUBLE); p2.setBorderTop(Borders.DOUBLE); p2.setBorderRight(Borders.DOUBLE); p2.setBorderLeft(Borders.DOUBLE); p2.setBorderBetween(Borders.SINGLE); XWPFRun r2 = p2.createRun(); r2.setText("jumped over the lazy dog"); r2.setStrike(true); r2.setFontSize(20); XWPFRun r3 = p2.createRun(); r3.setText("and went away"); r3.setStrike(true); r3.setFontSize(20); r3.setSubscript(VerticalAlign.SUPERSCRIPT); XWPFParagraph p3 = doc.createParagraph(); p3.setWordWrap(true); p3.setPageBreak(true); p3.setAlignment(ParagraphAlignment.BOTH); p3.setSpacingLineRule(LineSpacingRule.EXACT); p3.setIndentationFirstLine(600); XWPFRun r4 = p3.createRun(); r4.setTextPosition(20); r4.setText("To be, or not to be: that is the question: Whether 'tis nobler in the mind to suffer The slings and arrows of outrageous fortune, Or to take arms against a sea of troubles, And by opposing end them? To die: to sleep; "); r4.addBreak(BreakType.PAGE); r4.setText("No more; and by a sleep to say we end The heart-ache and the thousand natural shocks That flesh is heir to, 'tis a consummation Devoutly to be wish'd. To die, to sleep; To sleep: perchance to dream: ay, there's the rub; ......."); r4.setItalic(true); XWPFRun r5 = p3.createRun(); r5.setTextPosition(-10); r5.setText("For in that sleep of death what dreams may come"); r5.addCarriageReturn(); r5.setText("When we have shuffled off this mortal coil,Must give us pause: there's the respectThat makes calamity of so long life;"); r5.addBreak(); r5.setText("For who would bear the whips and scorns of time,The oppressor's wrong, the proud man's contumely,"); r5.addBreak(BreakClear.ALL); r5.setText("The pangs of despised love, the law's delay,The insolence of office and the spurns......."); FileOutputStream out = new FileOutputStream("simple.docx"); doc.write(out); out.close(); }

POI导出Excel表格过程中出现乱码,求大神赐教

1. 读取word 2003及word 2007需要的jar包2. 读取 2003 版本(.doc)的word文件相对来说比较简单,只需要 poi-3.5-beta6-.jar 和 poi-scratchpad-3.5-beta6-.jar 两个 jar 包即可, 而 2007 版本(.docx)就麻烦多,我说的这个麻烦不是我们写代码的时候麻烦,是要导入的 jar 包比较的多,有如下 7 个之多:3. 1. openxml4j-bin-beta.jar4. 2. poi-3.5-beta6-.jar5. 3. poi-ooxml-3.5-beta6-.jar6. 4 .dom4j-1.6.1.jar7. 5. geronimo-stax-api_1.0_spec-1.0.jar8. 6. ooxml-schemas-1.0.jar9. 7. xmlbeans-2.3.0.jar10. 其中 4-7 是 poi-ooxml-3.5-beta6-.jar 所依赖的 jar 包(在 poi-bin-3.5-beta6-.tar.gz 中的 ooxml-lib 目录下可以找到)。

11. 2.换行符号12. 硬换行:文件中换行,如果是键盘中使用了"enter"的换行。

13. 软换行:文件中一行的字符数容量有限,当字符数量超过一定值时,会自动切到下行显示。

14. 对程序来说,硬换行才是可以识别的、确定的换行,软换行与字体大小、缩进有关。

15. 3.读取的注意事项16. 值得注意的是: POI 在读取不会读取 word 文件中的图片信息; 还有就是对于 2007 版的 word(.docx), 如果 word 文件中有表格,所有表格中的数据都会在读取出来的字符串的最后。

17. 4.读取word文本内容代码1 import java.io.File;2 import java.io.FileInputStream;3 import java.io.InputStream;4 5 import org.apache.poi.POIXMLDocument;6 import org.apache.poi.POIXMLTextExtractor;7 import org.apache.poi.hwpf.extractor.WordExtractor;8 import org.apache.poi.openxml4j.opc.OPCPackage;9 import org.apache.poi.xwpf.extractor.XWPFWordExtractor;10 11 public class Test {12 public static void main(String[] args) {13 try {14 InputStream is = new FileInputStream(new File("2003.doc"));15 WordExtractor ex = new WordExtractor(is);16 String text2003 = ex.getText();17 System.out.println(text2003);18 19 OPCPackage opcPackage = POIXMLDocument.openPackage("2007.docx");20 POIXMLTextExtractor extractor = new XWPFWordExtractor(opcPackage);21 String text2007 = extractor.getText();22 System.out.println(text2007);23 24 } catch (Exception e) {25 e.printStackTrace();26 }27 }28 }

poi-Java导出word时,能实现在word正文内“插入附件”的效果吗

NPOI 2.0就可以了。

引用using NPOI.XWPF.UserModel;XWPFDocument doc = new XWPFDocument();doc.CreateParagraph();FileStream sw = File.OpenWrite("blank.docx");doc.Write(sw);sw.Close();追加一句,刚才是生成了一个文件,再用流的方式,提示客户端下载,即可/// /// 弹出提示框,提示用户是否下载保存到本地\/// /// 文件路径public static string openWindowExport(string strFileName){string strReutrn = "";try{FileInfo DownloadFile = new FileInfo(strFileName);System.Web.HttpContext.Current.Response.Clear();System.Web.HttpContext.Current.Response.ClearHeaders();System.Web.HttpContext.Current.Response.Buffer = false;System.Web.HttpContext.Current.Response.ContentType = "application/octet-stream";System.Web.HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment;filename="+ System.Web.HttpUtility.UrlEncode(DownloadFile.FullName, System.Text.Encoding.UTF8));System.Web.HttpContext.Current.Response.AppendHeader("Content-Length", DownloadFile.Length.ToString());System.Web.HttpContext.Current.Response.WriteFile(DownloadFile.FullName);}catch (Exception Ex){strReutrn = Ex.Message;}finally{System.Web.HttpContext.Current.Response.Flush();System.Web.HttpContext.Current.Response.End();}return strReutrn;

如何做NPOI导出word

事情的起因是:我使用geany集成开发环境开发,里面使用了中文,在综端用javac命令编译java程序的时候出现了中文无法解释。

看起来和不爽,通过我的查询,明白了结果,一下是我查到的两篇文章,我也是根据这两篇文章解决问题的。

解决的方法有: 1:在geany中设置“生成”,在编译改为javac "%f" -encoding GB18030,执行改为java "%e" -encoding GB18030,这样你要是用geany编译和运行就不会出现乱码了。

在“编辑”、“首选项”里面把编码都设置文GB18030,不知道不设置的结果是什么,没有测试。

2:如果你不喜欢在geany里面编译,可以在综端里面用javac ClassName.java -encoding GB18030和javac ClassName -encoding GB18030就可以了。

3:怕麻烦那就在etcpofile下添加两行 expot LC_ALL="zh_CN.GBK" expot LANG="zh_CN.GBK" 保存后,用souce etcpofile使其生效。

在修改前,可以用locale命令查看当前的设置,修改后在查看有没有生效。

不知道这样改会不会有什么后果。

等待以后验证。

------------第一篇参考文章---------------- 由于JDK是国际版的,在编译的时候,如果我们没有用-encoding参数指定我们的JAVA源程序的编码格式,则javac.exe首先获得我们操作 系统默认采用的编码格式,也即在编译java程序时,若我们不指定源程序文件的编码格式,JDK首先获得操作系统的file.encoding参数(它保 存的就是操作系统默认的编码格式,如WIN2k,它的值为GBK),然后JDK就把我们的java源程序从file.encoding编码格式转化为 JAVA内部默认的UNICODE格式放入内存中。

然后,javac把转换后的unicode格式的文件进行编译成.class类文件,此时.class 文件是UNICODE编码的,它暂放在内存中,紧接着,JDK将此以UNICODE编码的编译后的class文件保存到我们的操作系统中形成我们见到 的.class文件。

对我们来说,我们最终获得的.class文件是内容以UNICODE编码格式保存的类文件,它内部包含我们源程序中的中文字符串,只 不过此时它己经由file.encoding格式转化为UNICODE格式了。

-----------第二篇参考文章--------------- 修改etcsysconfiglanguage文件,将RC_LANG, RC_LC_ALL设置为zh_CN.GB2312, 同时将ROOT_USES_LANG设置为 "yes" 一。

Linux系统的默认编码设置。

etcsysconfigi18n Contols the system font settings. The language vaiales ae used in etcpofile.dlang.sh. An example i18n file: LANG="zh_CN.GB18030" LANGUAGE="zh_CN.GB18030:zh_CN.GB2312:zh_CN" SUPPORTED="zh_CN.GB18030:zh_CN:zh:en_US.UTF-8:en_US:en" SYSFONT="lat0-sun16" 以上是把系统的默认字符集设置为GB2312.现在很多系统默认编码字符集是UTF-8。

可以通过设置这个文件来改变系统的默认字符集。

另外,也可在用户的环境变量或者用户的环境变量文件加入路径变量的声明: 在系统的预处理文件中声明,这样对整个系统起作用: #vi etcpofile 在文件尾加入 LC_ALL="zh_CN.GBK" expot LANG="zh_CN.GBK" 在用户的预处理文件中声明,对单独的用户起作用: #vi oot.ash_pofile 在文件尾加入 expot LC_ALL="zh_CN.GBK" expot LANG="zh_CN.GBK" 以上配置重新启动服务器使更改生效。

二。

查看系统当前字符集。

locale:local encode,即本地编码的意思。

这个命令不带任何参数就是显示当前系统的字符集编码。

也可以设置环境变量,全体参数man locale 三。

安装字体。

#mkdi 要存放字体的文件夹 #cp *.ttf 刚才创建的文件夹 生成 fonts.di 文件 #ttmkfdi fonts.di 注:mkfontdi 用于生成点阵字体的 fonts.di 文件,ttmkfdi 用于生成 TueType 字体的 fonts.di 文件。

由于 ttmkfdi 不能识某些汉字TTF的编码,需手工修改。

生成的 fonts.di 如下: fonts.di ====== simsun.ttf -misc-SimSun-medium--nomal--0-0-0-0-p-0-ascii-0 改为: simsun.ttf -misc-SimSun-medium--nomal--0-0-0-0-p-0-g2312.1980-0 生成 fonts.alias 文件 #cat fonts.di fonts.alias 将 fonts.alias 内容改为: SimSun -misc-SimSun-medium--nomal--0-0-0-0-p-0-g2312.1980-0 将字体的路径添加的FontPath中 #vi etcX11XF86Config 在此文件中添加刚才创建的路径 #step #fc_cache 刚才创建的路径,强制刷新字体缓存,使字体生效。

四。

vim编码。

encoding—-该选项使用于缓冲的文本(你正在编辑的文件),寄存器,Vim 脚本文件等等。

你可以把 'encoding' 选项当作是对 Vim 内部运行机制的设定。

fileencoding—-该选项是vim写入文件时采用的编码类型。

temencoding—-该选项代表输出到客户终端(Tem)采用的编码类型。

此3个变量的默认值: encoding—-与系统当前locale相同,所以编辑文件的时候要考虑当前locale,否则要设置的东西就比较多了。

fileencoding—-vim打开文件时自动辨认其编码,fileencoding就为辨认的值。

为空则保存文件时采用encoding的编码,如果没有修改encoding,那值就是系统当前locale了。

temencoding—-默认空值,也就是输出到终端不进行编码转换。

编辑特别推荐: Java删除文件和目录代码 Java开发守护进程 深入Java核心...

如何解决Linux下Wine中文对话框字体乱码的问题呢?

Wine中中文存在很多的乱码,显示成 ??等,这是对对话框中"确定"等的解决: Wine中对话框默认的字体是Tahoma,在我们的LINUX上,Tahoma字体是无法正常显示中文的。

比如Wine configuation中的"确定""取消"等就变成了">"的字样。

解决方法很简单: 在wine的egedit中,找到: \HKEY_LOCAL_MACHINE\Softwae\Micosoft\Windows NT\CuentVesion\FontSustitutes 方法1:直接地将这个键设为空,问题就解决了。

方法2:将MS Shell Dlg设置为一种自己字库中已有的中文字体即可,如果已经将windows中宋体取来使用了,字库中SimSun对应宋体(这是Windows的,LINUX下默认是没有的),在这里设置为 SimSun即可。

POI导出excel表时文件名变成乱码怎么办

在用POI进行excel表导出时,遇到中文文件名乱码问题,用下面的方法得到了解决。

转载自:https://my.oschina.NET/chinamummy29/blog/525639在导出前对名称根据浏览器做下处理[java] view plain copy// 判断浏览器类型,firefox浏览器做特殊处理,否则下载文件名乱码publicstaticvoidcompatibleFileName(HttpServletRequest request, HttpServletResponse response, Stringexcelname) throws UnsupportedEncodingException { Stringagent = request.getHeader("USER-AGENT").toLowerCase(); response.setContentType("application/vnd.ms-excel"); StringfileName = excelname; StringcodedFileName = java.net.URLEncoder.encode(fileName, "UTF-8"); if(agent.contains("firefox")) { response.setCharacterEncoding("utf-8"); response.setHeader("content-disposition", "attachment;filename="+ newString(fileName.getBytes(), "ISO8859-1") + ".xls"); } else{ response.setHeader("content-disposition", "attachment;filename="+ codedFileName + ".xls"); } }

java word转html乱码怎么办,poi导出word 乱码 poi word转html 乱码相关推荐

  1. poi 导出excel实战与word新增行与excel添加背景色与设置单元格边框

    提示:本文尽可能简洁通俗的讲解[poi 导出excel实战] ,如需导入可见文尾 一.导入依赖: <!--Apache poi--><!--xls(03)--><depe ...

  2. cpu java poi 导出_java基于poi导出excel透视表代码实例

    这篇文章主要介绍了java基于poi导出excel透视表代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 从前,我是一个前端程序猿,怀着对打通 ...

  3. java poi 导出xlsx_java 使用poi存储Excel(.xlsx格式)

    效果图: package excel; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; i ...

  4. poi导出word2003(动态数据,不用模板,且生成word能再次导入)

    一.场景需求: 有个项目需要将某个题库里面的题目导出word2003,之前框架里面没有导出word2003的工具类.倒是见过导出txt,excel的,但是word的没有. 二.技术选型 网上找了一通, ...

  5. Java导出excel中poi的导出和csv导出excel

    最近在做一个文史类统计项目,许多地方需要用到导出excel报表.之前用的是公司的poi导出,最后听群友说csv的导出会比poi快很多.但是csv文件是以","分割文件的.如果数据中 ...

  6. 简单封装POI导出excel

    简单封装POI导出excel Apache POI是一套根据Office Open XML标准(OOXML)和Microsoft OLE 2复合文档格式(OLE2)来处理各种文件格式的Java API ...

  7. POI导出Excel文件时,单元格内文字竖排、横排默认不展示,必须点击一下问题解决

    //创建单元格样式设置CellStyle cs_vertical = wb.createCellStyle();//设置字体Font textFont = wb.createFont();textFo ...

  8. 【操作word】Java + POI导出富文本的内容到word文档

    这周工作中,遇到一个需求是需要将数据库中富文本内容导出到word文档里面,于是就采用POI技术实现了一下导出word文档的功能.(word文档是识别html内容的,所以富文本内容也自然能够识别.) 一 ...

  9. java使用POI导出word数据以及生成word表格

    暑期在杭州实习了两个月,主要是使用vue+SpringMVC进行一个网页开发. 而在开发的过程中,也遇到了比较常见的文件导出问题–以固定格式将数据存储在word.excel等office文件格式中. ...

  10. java用poi导出word,Java使用POI导出Word文档的操作教程,poiword

    Java使用POI导出Word文档的操作教程,poiword 一.主要pom依赖 org.apache.poi poi-ooxml 3.16 二.需要导出word模板 三.相关导出代码 package ...

最新文章

  1. 计算机视觉常用图像数据集标记平台
  2. python语言编程环境-python语言开发搭建电脑环境的方法
  3. 【转】物料与客户主数据的税分类
  4. 【POI】对于POI无法处理超大xls等文件,官方解决方法【已解决】【多线程提升速率待定】...
  5. 静态static关键字概述
  6. 关于监听UITextField的问题
  7. linux 内核 睡眠,linux内核对S3C2410睡眠模式的支持有哪些?
  8. 图解TCPIP-传输层 TCP报文
  9. 使控件大小随窗口变化
  10. List的Stream流操作
  11. OpenCV-Sobel边缘检测
  12. 父游标、子游标及共享游标
  13. 最安全的php加密,安全性 - 使用PHP进行最简单的双向加密
  14. Windows Server 2008 R2远程桌面服务配置和授权激活
  15. php年份判断生肖,十二生肖查询年份表
  16. 凸优化基础知识—凸集(Convex Sets)
  17. CSS基础(P45-P65)
  18. Mac 重启后自动启动 docker container
  19. 人工智能工程师一般需要学什么?
  20. 【FPGA】QuartusII13.0实现组合逻辑 3/8 译码器

热门文章

  1. 无人值守称重系统解决方案,加快企业数字化发展
  2. 【数据库习题原理 10】数据库恢复技术
  3. 分布式事务中的时间戳详解
  4. android 环信集成,Android 环信集成使用总结
  5. 正睿OI补题(二分与分治)
  6. ubuntu下向163发送邮件
  7. 机器学习 --- 概率图 - 表示 - 动态模型
  8. 学习挖掘机和程序员哪个好
  9. bucket name does not follow Amazon S3 standards
  10. SIM7600CE-CNSE 4G模组发送英文短信