我的jsp页面是ShowInfo.jsp,这个页面是从数据库里面动态查出来的,是一张表格,现在我想将jsp页面上的数据导入到excel文件中,数据是导出来了,但是打开excel文件的时候中文字符是些乱码,不知道时什么原因啊??我的jsp是写的过滤器,使用的全是UTF-8编码,在jsp页面上显示的中文字符也没什么问题,只是到了excel文件中,汉字会出现乱码。是不是和excel的字符编码方式有关??请问在哪儿修改excel的字符编码方式???
调试欢乐多
* 生成xls文件
* @param title 标题数组
* @param list 内容数组 格式111|222|333|444|555
* @return
*/
public static String create(String[] title,String[] list)
{
SimpleDateFormat df = new SimpleDateFormat("yyyyMMddHHmmss");
String newFileName = df.format(new Date()) + "_" + new Random().nextInt(1000);
String basePath=XmlExplanatory.getReportSavePath();
String PATH=basePath+"/"+newFileName+".xls";
try {
// 打开文件
WritableWorkbook book = Workbook.createWorkbook(new File(PATH));
// 生成名为“第一页”的工作表,参数0表示这是第一页
WritableSheet sheet = book.createSheet("Sheet1", 0);
// 在Label对象的构造子中指名单元格位置是第一列第一行(0,0)
// 设置Title
Label label = null;
for (int i = 0; i < title.length; i++) {
label = new Label(i, 0, title[i]);
sheet.addCell(label);
sheet.setColumnView(i, 20);
}
for (int i = 0; i < list.length; i++) {
String[] ss = list[i].split("\\|");
for (int j = 0; j < ss.length; j++) {
label = new Label(j, i + 1, ss[j]);
sheet.addCell(label);
}
} /* 生成一个保存数字的单元格 必须使用Number的完整包路径,否则有语法歧义 单元格位置是第二列,第一行,值为789.123 */
// jxl.write.Number number = new jxl.write.Number(1,0,789.123);
// sheet.addCell(number);
// 写入数据并关闭文件
book.write();
book.close();
} catch (Exception e) {
System.out.println(e);
}
return newFileName;
}
}