java poi导出excel乱码
在不同的系统下字符集的编码有可能不一样,windows系统中从程序到底层是从unicode编码进行转换,unix系统下就不一定是从unicode编码开始转换的,支不支持unicode编码我也不知道,我估计就是系统的字符集编码不同的问题
POI导出excel表时文件名变成乱码怎么办
在用POI进行excel表导出时,遇到中文文件名乱码问题,用下面的方法得到了解决。
转载自:
在导出前对名称根据浏览器做下处理
[java] view plain copy
code class=”hljs typescript” style=””span class=”hljs-comment” style=””// 判断浏览器类型,firefox浏览器做特殊处理,否则下载文件名乱码/span
span class=”hljs-keyword” style=””public/span span class=”hljs-keyword” style=””static/span span class=”hljs-built_in” style=””void/span compatibleFileName(HttpServletRequest request, HttpServletResponse response, span class=”hljs-built_in” style=””String/span excelname) throws UnsupportedEncodingException {
span class=”hljs-built_in” style=””String/span agent = request.getHeader(span class=”hljs-string” style=”””USER-AGENT”/span).toLowerCase();
response.setContentType(span class=”hljs-string” style=”””application/vnd.ms-excel”/span);
span class=”hljs-built_in” style=””String/span fileName = excelname;
span class=”hljs-built_in” style=””String/span codedFileName = java.net.URLEncoder.encode(fileName, span class=”hljs-string” style=”””UTF-8″/span);
span class=”hljs-keyword” style=””if/span (agent.contains(span class=”hljs-string” style=”””firefox”/span)) {
response.setCharacterEncoding(span class=”hljs-string” style=”””utf-8″/span);
response.setHeader(span class=”hljs-string” style=”””content-disposition”/span, span class=”hljs-string” style=”””attachment;filename=”/span + span class=”hljs-keyword” style=””new/span span class=”hljs-built_in” style=””String/span(fileName.getBytes(), span class=”hljs-string” style=”””ISO8859-1″/span) + span class=”hljs-string” style=”””.xls”/span);
} span class=”hljs-keyword” style=””else/span {
response.setHeader(span class=”hljs-string” style=”””content-disposition”/span, span class=”hljs-string” style=”””attachment;filename=”/span + codedFileName + span class=”hljs-string” style=”””.xls”/span);
}
}/code
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();
}