本文目录一览:

请问下,我想用java实现下载excel表格,思路是先在临时文件里生成临时excel文件,但是不知

你的意思是 导出excel表格吧。 导出的时候会创建临时文件 但是导出后要删除临时文件吧

java写了一个下载excel的功能,我想把用户下载的模版的所有单元格都变成文本格式。该如何写呢?

public void export(ListPSbLnode li, String dateString,String[] title) throws WriteException, IOException {

// 准备设置excel工作表的标题

// 创建Excel工作薄

WritableWorkbook wwb = null;

try {

// 输出的excel的路径

String filePath1 = Const.pathStr+Const.pathStr4+Const.pathStr3;

File file = new File(filePath1);

if(!file.exists()){

file.mkdir();

}

String filePath=filePath1+Const.pathStr4+Const.pathStr6+dateString+Const.pathStr5;

// 新建立一个jxl文件,即在C盘下生成testJXL.xls

OutputStream os = new FileOutputStream(filePath);

wwb = Workbook.createWorkbook(os);

// 添加第一个工作表并设置第一个Sheet的名字

WritableSheet sheet = wwb.createSheet("设备清单", 0);

Label label;

for (int i = 0; i title.length; i++) {

// Label(x,y,z) 代表单元格的第x+1列,第y+1行, 内容z

// 在Label对象的子对象中指明单元格的位置和内容

label = new Label(i, 0, title[i]);

// 将定义好的单元格添加到工作表中

sheet.addCell(label);

}

for (int i = 0; i li.size(); i++) {

int j = 0;

j = i + 1;

//填充单元格

//获取区域名称

label = new Label(0, j, li.get(i).getQyName());

sheet.addCell(label);

//获取区域名称

label = new Label(1, j, li.get(i).getJzName());

sheet.addCell(label);

//获取设备名称

label = new Label(2, j, li.get(i).getLnodeName());

sheet.addCell(label);

// //获取设备类型名称

label = new Label(3, j, li.get(i).getSbxh());

sheet.addCell(label);

//获取运行状态

label = new Label(4, j, li.get(i).getYxzh());

sheet.addCell(label);

//获取删除状态

label = new Label(5, j, li.get(i).getDeleteFlag());

sheet.addCell(label);

//获取启用状态

label = new Label(6, j, li.get(i).getQyzt());

sheet.addCell(label);

//获取设备投运日期

label = new Label(7, j, li.get(i).getSbtyri());

sheet.addCell(label);

//获取使用年限

jxl.write.Number numb1 = new jxl.write.Number(8, j, li.get(i).getSynx());

sheet.addCell(numb1);

//获取区域名称

label = new Label(9, j, li.get(i).getAddUser());

sheet.addCell(label);

//获取区域名称

label = new Label(10, j, li.get(i).getUpdUser());

sheet.addCell(label);

//获取区域名称

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

String newdate = sdf.format(li.get(i).getUpdTime());

label = new Label(11, j, newdate);

sheet.addCell(label);

//获取区域名称

SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd");

String newdate2 = sdf2.format(li.get(i).getAddTime());

label = new Label(12, j, newdate2);

sheet.addCell(label);

//获取区域名称

label = new Label(13, j, li.get(i).getZcbh());

sheet.addCell(label);

//获取区域名称

label = new Label(14, j, li.get(i).getSbcs());

sheet.addCell(label);

//获取区域名称

jxl.write.Number numb2 = new jxl.write.Number(15, j, li.get(i)

.getSbll());

sheet.addCell(numb2);

//获取区域名称

label = new Label(16, j, li.get(i).getRldw());

sheet.addCell(label);

//获取区域名称

label = new Label(17, j, li.get(i).getWxghjl());

sheet.addCell(label);

}

// 写入数据

wwb.write();

} catch (Exception e) {

e.printStackTrace();

}finally{

// 关闭文件

wwb.close();

}

}

Const文件:

/**路径:C盘*/

public static String pathStr = "C:";

/**路径://*/

public static String pathStr2 = "//";

/**文件夹:workspace*/

public static String pathStr3 = "exportFile";

/**文件名:world*/

public static String pathStr6 = "Equipment";

/**路径:/*/

public static String pathStr4 = "/";

/**路径:.xls*/

public static String pathStr5 = ".xls";

java下载excel 不预览

第一:检查导入包是否完整(poi-3.5-beta4-20081128.jar poi的核心架包,poi-contrib-3.5-beta4-20081128.jar 可选poi-ooxml-3.5-beta4-20081128.jar 可选poi-scratchpad-3.5-beta4-20081128.jar 可选)

第二:创建视图(主要检查输出函数是否正确)

第三:servlet创建

1.导入servlet相关包

第四:创建service(poiservice),导入包

希望能帮到你,谢谢!

用java下载一个excel文件,在Response.setContentType()参数中

response.setContentType(MIME)的作用是使客户端浏览器,区分不同种类的数据,并根据不同的MIME调用浏览器内不同的程序嵌入模块来处理相应的数据。

例如web浏览器就是通过MIME类型来判断文件是GIF图片。通过MIME类型来处理json字符串。

Tomcat的安装目录/conf/web.xml 中就定义了大量MIME类型 ,可以参考。

response.setContentType("text/html; charset=utf-8"); html

.setContentType("text/plain; charset=utf-8"); 文本

text/javascript json数据

application/xml xml数据

这 个方法设置发送到客户端的响应的内容类型,此时响应还没有提交。给出的内容类型可以包括字符编码说明,例 如:text/html;charset=UTF-8.如果该方法在getWriter()方法被调用之前调用,那么响应的字符编码将仅从给出的内容类型 中设置。该方法如果在getWriter()方法被调用之后或者在被提交之后调用,将不会设置响应的字符编码,在使用http协议的情况中,该方法设 置 Content-type实体报头。

一般在Servlet中,习惯性的会首先设置请求以及响应的内容类型以及编码方式:

response.setContentType("text/html;charset=UTF-8");

request.setCharacterEncoding("UTF-8");

response.setContentType()的String参数及对应类型

value="image/bmp"BMP

value="image/gif"GIF

value="image/jpeg"JPEG

value="image/tiff"TIFF

value="image/x-dcx"DCX

value="image/x-pcx"PCX

value="text/html"HTML

value="text/plain"TXT

value="text/xml"XML

value="application/afp"AFP

value="application/pdf"PDF

value="application/rtf"RTF

value="application/msword"MSWORD

value="application/vnd.ms-excel"MSEXCEL

value="application/vnd.ms-powerpoint"MSPOWERPOINT

value="application/wordperfect5.1"WORDPERFECT

value="application/vnd.lotus-wordpro"WORDPRO

value="application/vnd.visio"VISIO

value="application/vnd.framemaker"FRAMEMAKER

value="application/vnd.lotus-1-2-3"LOTUS123

MIME映射策略就是在网页中使用哪个应用程序(即插件),打开哪种文件。另外还有使用权限问题。比如对PDF文档,用“application/pdf “策略。这在动态网页中很常见。出现这种现象,有两种情形:一是使用一个应用程序去打开它不能打开的文档,比如用在标签中定义“DWG”文档用 “application/pdf ”,就会出现无法打开的问题。二是文件扩展名符合要求,但文件内容(格式)不符合要求。你可以检查你浏览的网页源代码,获得出错信息。检查方法是:查看— 源文件。寻找类似于“application/pdf “的字符串,就可以看到,要打开的文件是否与应用程序匹配。 追问 如果不相匹配 如何解决回答 这通常是由网页编写人来更改。比如:你在源文件里面找到你要打开的文件的HTML标签,在里面加上应用程序即可。比如,你要在网页上打开一个PDF文档, 找到PDF文档那一行,在HTML标签里加上 type=“application/pdf “ 就可以了

java 动态下载 excel 文档,统统都是乱码!希望哪位大虾帮我提出解决方案。谢谢! 在线等答案!

不知道具体原因是什么,不过可以给你提个小小的建议,建议你把代码写成这样:

response.setContentType("application/vnd.ms-excel; charset=GB2312");

去掉response.setCharacterEncoding("GB2312"); 这一行

你试试吧