java word转html乱码怎么办,poi导出word 乱码 poi word转html 乱码

849e7e2d3f53c59949baa986a7942d37.png

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"); } }

参与评论 您还未登录,请先 登录 后发表或查看评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:深蓝海洋 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值