社区
Web 开发
帖子详情
poi读excel中文乱码问题
lightluke
2007-04-04 10:54:59
我是在tomcat5.0环境下做的poi读取上传的excel文件
如果没有中文,可以正常运行,
如果excel里有中文,就显示??
如果上传的文件名带中文,就不能读到文件。
这个问题该怎么解决?
...全文
1317
12
打赏
收藏
poi读excel中文乱码问题
我是在tomcat5.0环境下做的poi读取上传的excel文件 如果没有中文,可以正常运行, 如果excel里有中文,就显示?? 如果上传的文件名带中文,就不能读到文件。 这个问题该怎么解决?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
lightluke
2007-04-10
打赏
举报
回复
谁能告诉我,怎么看当前用的是什么编码?
lightluke
2007-04-09
打赏
举报
回复
我用poi做了个往excel里插数据的文件
往里面插入中文,再将此文件上传上去,可以识别中文
但直接建立的excel表,里面的中文却还是不能显示
问题是不是excel跟tomcat的编码不同的缘故呢?
lightluke
2007-04-09
打赏
举报
回复
在ie地址栏里可以看到中文的fn
yuzhenbj
2007-04-06
打赏
举报
回复
request.setCharacterEncoding("gbk");//保证你的fn是中文
String fn=request.getParameter("filename");
yuzhenbj
2007-04-06
打赏
举报
回复
如果是单元格的内容出错加
cell.setEncoding(HSSFWorkbook.ENCODING_UTF_16);
yuzhenbj
2007-04-05
打赏
举报
回复
加过滤器
lightluke
2007-04-05
打赏
举报
回复
注解下好么,看了不太明白
response.setContentType("application/vnd.ms-excel;charset=gb2312");
这句什么意思?以excel显示?那样的话就弹出打开或保存的对话框了。
lightluke
2007-04-05
打赏
举报
回复
还是不行啊
我把原始代码贴出来,哪给高手指点下,多谢了
package com;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFCell;
import java.io.IOException;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.*;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.PrintWriter;
import java.text.DecimalFormat;
import java.util.Enumeration;
public class POIExcelServlet extends HttpServlet
{
//从excel中读取数据存入ArrayList中
String pp ="F:\\Program Files\\Apache Software Foundation\\Tomcat 5.0\\webapps\\ROOT\\Excel\\";
String poiexcelPath = "";
public void init(ServletConfig config) throws ServletException{
super.init(config);
}
protected void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{
doPost(request,response);
}
protected void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{
String fn=request.getParameter("filename");
poiexcelPath = pp + fn;
readExcel(this.poiexcelPath,response);
}
public void readExcel(String filename,HttpServletResponse response) throws IOException
{
DecimalFormat df = new DecimalFormat("#");
String fileToBeRead = filename;
PrintWriter out = response.getWriter();
try{
HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(fileToBeRead));
int numSheets;
int rowNumOfSheet;
short cellNumOfRow;
for(numSheets = 0;numSheets < workbook.getNumberOfSheets();numSheets++)
{
if(null != workbook.getSheetAt(numSheets))
{
HSSFSheet aSheet = workbook.getSheetAt(numSheets);
for (rowNumOfSheet = 0; rowNumOfSheet <= aSheet.getLastRowNum();rowNumOfSheet++)
{
if(null != aSheet.getRow(rowNumOfSheet)){
HSSFRow aRow = aSheet.getRow(rowNumOfSheet);
for (cellNumOfRow = 0; cellNumOfRow <= aRow.getLastCellNum();cellNumOfRow++)
{
if(aRow.getCell(cellNumOfRow)!=null){
HSSFCell aCell = aRow.getCell(cellNumOfRow);
int cellType = aCell.getCellType();
switch(cellType){
case 0:
String strCell = df.format(aCell.getNumericCellValue());
out.println(strCell+ "");
break;
case 1:
strCell = aCell.getStringCellValue();
out.println(strCell+ "");
break;
default:
strCell = "数据格式不对";
out.println(strCell+ "");
}
}
}
out.print("<br>");
}
}
}
}
}catch(Exception e){
System.out.println("ReadExcelError"+ e);
}
}
}
lightluke
2007-04-04
打赏
举报
回复
问题是怎么转
比特灵
2007-04-04
打赏
举报
回复
两个问题:先解决中文文件名成不能上传的问题(不能读到文件),再解决文件内中文问题。
多试几次转码。
lightluke
2007-04-04
打赏
举报
回复
好象不行
问题应该是servlet整个不支持中文
我在里面打2个中文都显示??
yuzhenbj
2007-04-04
打赏
举报
回复
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException {
...
response.setContentType("application/vnd.ms-excel;charset=gb2312");
response.setCharacterEncoding("UTF-8");
//------
String docName="电流极值报表.xls";
docName=java.net.URLEncoder.encode(docName,"UTF-8");
response.setHeader("Content-Disposition", "attachment;filename=" +new String(docName.getBytes("UTF-8"),"GBK"));
//------
我刚遇见,绝对可以解决,最好名字不要太长!
poi
_java_
excel
.zip_java 导出
excel
_
poi
excel
_
poi
导出再导入
excel
中文_导出exce
用
poi
读
取导出
excel
,对
中文乱码
问题
进行处理
displaytag-1.1.1-execle@cvs导出
中文乱码
问题
解决.jar
displaytag-1.1.1-execle@cvs导出
中文乱码
问题
解决.jar
POI
操作
Excel
导入和导出
在企业级应用开发中,
Excel
报表是一种最常见的报表需求,
POI
是apache的子项目,目标是处理ole2对象。它提供了一组操纵Windows文档的Java API目前比较成熟的是HSSF接口,处理MS
Excel
(97-2002)对象。它不象我们仅仅是用csv生成的没有格式的可以由
Excel
转换的东西,而是真正的
Excel
对象,你可以控制一些属性如sheet,cell等Apache
POI
是Apache软件基金会的开放源码函式库,
POI
提供API给Java程序对Microsoft Office格式档案
读
和写的功能。结构:HSSF - 提供
读
写Microsoft
Excel
格式档案的功能。XSSF - 提供
读
写Microsoft
Excel
OOXML格式档案的功能。HWPF - 提供
读
写Microsoft Word格式档案的功能。HSLF - 提供
读
写Microsoft Power
Poi
nt格式档案的功能。HDGF - 提供
读
写Microsoft Visio格式档案的功能。
基于
poi
实现word/
excel
转换为HTML(且兼容.doc.docx.xls.xlsx)
基于
poi
实现word/
excel
转换为HTML(且兼容.doc.docx.xls.xlsx) 对于简单的word
Excel
转换 足够。
excel
转换时存在火狐浏览器不兼容乱码
问题
,希望多多交流。
excel
xlsx文件
读
取 javadbf乱码解决
该项目包含了项目所需要的jar包以及测试案例。项目使用环境为eclipse jdk1.8 1.
poi
.Test
poi
为测试用例; 2.
poi
.
Excel
Util 为工具类,项目中可直接调用。 3.解决了javadbf
读
取dbf文件表头和数据乱码
问题
,com.webadmin.util.dbf.DBFReaderTest为测试用例。
Web 开发
81,092
社区成员
341,717
社区内容
发帖
与我相关
我的任务
Web 开发
Java Web 开发
复制链接
扫一扫
分享
社区描述
Java Web 开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章