社区
Web 开发
帖子详情
poi读excel中文乱码问题
lightluke
2007-04-04 10:54:59
我是在tomcat5.0环境下做的poi读取上传的excel文件
如果没有中文,可以正常运行,
如果excel里有中文,就显示??
如果上传的文件名带中文,就不能读到文件。
这个问题该怎么解决?
...全文
1386
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"));
//------
我刚遇见,绝对可以解决,最好名字不要太长!
卡密 / 优惠券自动发货插件实现虚拟物品自动发货
开通方法 登录 https://admin.it120.cc/ 后台,左侧菜单 “工厂设置” --> “插件管理” , 购买并开通 “卡密自动发货” 插件 批量添加卡密 / 二维码 点击商品管理 --> 卡密自动发货设置 批量添加或者上传卡密 / 优惠码等信息 下单指明需要自动发货 创建订单接口中,需要指定 autoDeliver 参数为 true ,那么该订...
Zibll卡密售卡功能插件:简化虚拟商品销售
在现代电子商务领域,虚拟商品的销售已经成为了不可或缺的一部分。Zibll卡密售卡功能插件作为业界领先的解决方案,为用户提供了从售卡到管理的全面体验。本章将概述Zibll插件的核心优势与功能,为后续章节的详细介绍奠定基础。虚拟商品,作为数字时代的产物,具备无形性、即时性、易复制性和可重复使用的特点。这些特性使得虚拟商品在市场中拥有独特的竞争优势,它们省去了物理商品的存储、运输等物流成本,同时还减少了因地域限制而带来的销售障碍。随着电子商务的蓬勃发展,虚拟商品市场迅速扩张。
计算机毕业设计springboot虚拟物品交易系统 基于SpringBoot的虚拟商品在线交易平台 SpringBoot驱动的数字藏品交易系统
近年来,随着游戏、社交、内容付费等产业的爆发,虚拟道具、皮肤、会员、兑换码等数字商品的交易需求呈几何级增长。传统QQ群、贴吧“一手交钱、一手交货”的模式已暴露出假货泛滥、跑路频发、对账困难等痛点,亟需一套标准化、可溯源、高并发、低延迟的线上解决方案。借助SpringBoot快速开发优势,本次计划落地一套“即插即用”的虚拟物品交易系统,让买卖双方在一个界面里完成发布、搜索、下单、发货、售后、评价、申诉等全生命周期操作,同时为平台方提供实时数据看板与风控预警,实现业务闭环。 系统核心功能清单如下: 系统首页:轮
ThinkPHP 5.1的商城系统,商淘软件多用户商城电脑端+手机版,破解版
ThinkPHP 5.1的商城系统,多用户商城电脑端+手机版,破解出来了!!大家可以下载学习使用。 看到目前唯一支持商城和社区用户互通的挺好的了,分享给大家。 商淘软件电商系统功能(含手机版) (一) 系统管理:菜单权限、前台菜单、角色管理、职员管理、登录日志、操作日志、图片空间、商城消息、风格设置、计划任务 (二) 基础设置:商城配置、导航管理、广告管理、广告位置、银行管理、支付管理、地区管理、...
三步构建专业虚拟交易平台:ACG-Faka开源发卡系统深度解析
在数字商品交易日益普及的今天,如何快速搭建一个安全、稳定且功能完善的虚拟商品交易平台?ACG-Faka作为一款基于PHP8开发的二次元风格发卡系统,为开发者和创业者提供了完美的解决方案。这款开源项目不仅具备完整的商品销售、支付处理、会员管理功能,还拥有强大的插件扩展能力,让您在几分钟内就能搭建起专业的虚拟商品交易平台。 ## 项目定位:解决数字商品交易的核心痛点 ACG-Faka是一款专为数字
Web 开发
81,111
社区成员
341,726
社区内容
发帖
与我相关
我的任务
Web 开发
Java Web 开发
复制链接
扫一扫
分享
社区描述
Java Web 开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章