在Servlet中可以以字符方式读取一个Excel,然后通过PrintWriter写出,通过访问这个Servlet可以得到一个Excel表格吗?列如
public class ExcelServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { response.setContentType("Application/vnd.ms-excel;charset=GB2312");
InputStream is=new FileInputStream("D:/1.xls");
InputStreamReader isr=new InputStreamReader(is);
BufferedReader br=new BufferedReader(isr);
PrintWriter out=response.getWriter();
while(true){
String str=br.readLine();
if(str==null)break;
out.print(str);
}
out.flush();
out.close();
}
}(当然上面的打开会是乱码,若是以字节流的方式读取和写入没问题)
public class ExcelServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { response.setContentType("Application/vnd.ms-excel;charset=GB2312");
InputStream is=new FileInputStream("D:/1.xls");
InputStreamReader isr=new InputStreamReader(is);
BufferedReader br=new BufferedReader(isr);
PrintWriter out=response.getWriter();
while(true){
String str=br.readLine();
if(str==null)break;
out.print(str);
}
out.flush();
out.close();
}
}(当然上面的打开会是乱码,若是以字节流的方式读取和写入没问题)
InputStream is = null;
is = ctx.getResourceAsStream(
"/download/****.xls");
response.setContentType("application/vnd.ms-excel");
response.setHeader("Expires", "0");
response.setHeader("Cache-Control",
"must-revalidate, post-check=0, pre-check=0");
response.setHeader("Content-Disposition",
"attachment; filename=" +
("---".equalsIgnoreCase(***) ?
"**.xls" :
"**.xls"));
response.setHeader("Pragma", "public"); ServletOutputStream out = response.getOutputStream();
while (bis.read(buffer) > 0) {
out.write(buffer);
}
out.flush();
bis.close();
is.close();
还是用jxl.jar吧
字节当然调用out.write
public class ExcelServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { response.setContentType("Application/vnd.ms-excel;charset=GB2312");
InputStream is=new FileInputStream("D:/1.xls");
InputStreamReader isr=new InputStreamReader(is);
BufferedReader br=new BufferedReader(isr);
PrintWriter out=response.getWriter();
while(true){
String str=br.readLine();
if(str==null)break;
out.print(str);
}
out.flush();
out.close();
}
}
response.setContentType("Application/vnd.ms-excel;charset=GB2312");
这个才是关键的代码
"/download/****.xls");//用流读取当前项目路径下的download文件夹下的xls文件剩下的就是返回类型和返回名字设置,接着用流response流输出出来