java 将页面内容写入excel文件中并可以将其下载到本地任意位置

如题所述

java本身要生成excel文件必然是在后台做的,通过poi库生成excel文件并制作表格。
无法直接通过网页保存生成excel。
至于下载到本地任意位置,也是后台生成了excel文件发送到前台(浏览器),由用户选择要存在哪儿,不能直接存储(这是web沙箱限制,不允许网页直接访问本地硬盘,不然你想想,如果你打开一个网页,网页代码可以任意访问你的硬盘,你还敢开网页吗)。
要绕过沙箱限制必须装插件,也就是,你必须开发一个com或plugin插件,可以访问本地硬盘,但这需要用户手工安装(比如flash的插件,你之所以能用网页看flash是因为装了它的插件,但这是你手工装的,它不能绕过你直接给你装,它必须询问你行不行,你要手工点了OK,才能装)
温馨提示:内容为网友见解,仅供参考
第1个回答  2015-12-04
在Java中向Excel文件写入内容
四、导出数据到Excel文件中
下面的例子,设置了数字、日期的格式,还有字体,颜色等。
File tempFile=new File("d:/temp/output.xls");
WritableWorkbook workbook = Workbook.createWorkbook(tempFile);
WritableSheet sheet = workbook.createSheet("TestCreateExcel", 0);
//一些临时变量,用于写到excel中
Label l=null;
jxl.write.Number n=null;
jxl.write.DateTime d=null;
//预定义的一些字体和格式,同一个Excel中最好不要有太多格式
WritableFont headerFont = new WritableFont(WritableFont.ARIAL, 12, WritableFont.BOLD, false, UnderlineStyle.NO_UNDERLINE, jxl.format.Colour.BLUE);
WritableCellFormat headerFormat = new WritableCellFormat (headerFont);
WritableFont titleFont = new WritableFont(WritableFont.ARIAL, 10, WritableFont.NO_BOLD, false, UnderlineStyle.NO_UNDERLINE, jxl.format.Colour.RED);
WritableCellFormat titleFormat = new WritableCellFormat (titleFont);
WritableFont detFont = new WritableFont(WritableFont.ARIAL, 10, WritableFont.NO_BOLD, false, UnderlineStyle.NO_UNDERLINE, jxl.format.Colour.BLACK);
WritableCellFormat detFormat = new WritableCellFormat (detFont);
NumberFormat nf=new NumberFormat("0.00000"); //用于Number的格式
WritableCellFormat priceFormat = new WritableCellFormat (detFont, nf);
DateFormat df=new DateFormat("yyyy-MM-dd");//用于日期的
WritableCellFormat dateFormat = new WritableCellFormat (detFont, df);
//剩下的事情,就是用上面的内容和格式创建一些单元格,再加到sheet中
l=new Label(0, 0, "用于测试的Excel文件", headerFormat);
sheet.addCell(l);
//add Title
int column=0;
l=new Label(column++, 2, "标题", titleFormat);
sheet.addCell(l);
l=new Label(column++, 2, "日期", titleFormat);
sheet.addCell(l);
l=new Label(column++, 2, "货币", titleFormat);
sheet.addCell(l);
l=new Label(column++, 2, "价格", titleFormat);
sheet.addCell(l);
//add detail
int i=0;
column=0;
l=new Label(column++, i+3, "标题 "+i, detFormat);
sheet.addCell(l);
d=new DateTime(column++, i+3, newjava.util.Date(), dateFormat);
sheet.addCell(d);
l=new Label(co本回答被网友采纳
第2个回答  2017-06-22
//将你要导出的数据放入list
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
try {

HttpServletResponse response = ServletActionContext.getResponse();
// 创建HSSFWorkbook对象(excel的文档对象)
HSSFWorkbook wb = new HSSFWorkbook();
// 建立新的sheet对象(excel的表单)
HSSFSheet sheet = wb.createSheet("表名");
// 在sheet里创建第一行,参数为行索引(excel的行),可以是0~65535之间的任何一个
String[] colNameArray = colNames.split(",");
HSSFRow rowHeader = sheet.createRow(0);
for (int i = 0; i < colNameArray.length; i++) {
                rowHeader.createCell(i).setCellValue(colNameArray[i]);
            }
// 取出所有有列表数据。
String[] colModels = colModel.split(",");
for (int i = 0; i < list.size(); i++) {
HSSFRow row = sheet.createRow(i + 1);//从第二行开始创建
Map<String, Object> map = list.get(i);

int k = 0;
// 只导出选中的数据。
for (String s : colModels) {
row.createCell(k++).setCellValue(String.valueOf(map.get(s)));
}
}

// 输出Excel文件
OutputStream output;
output = response.getOutputStream();
response.reset();
String exportName="execlExport"+new SimpleDateFormat("yyyyMMdd").format(new Date());
String str = new String(exportName.getBytes("gbk"),"ISO-8859-1");
response.setContentType("application/vnd.ms-excel;charset=UTF-8"); // 下载文版类型
//response.setContentType("application/x-download");
response.setHeader("Content-disposition", "attachment; filename=" + str + ".xls");
response.setCharacterEncoding("UTF-8");
wb.write(output);
output.close();
} catch(Exception e) {

}

导出时浏览器会提示下载,可以自己指定保存位置

第3个回答  2015-12-03
可以用Apache POI来实现

jsp调用java方法导出excel为什么会弹出保存或下载的对话框,调用完之后...
你的excel是文件形式还是页面上的某个表格。如果是文件形式那就是下载了,弹出保存或下载窗口是应该的,但如果是页面上的某个表格那么不需要调用后台java来实现到处excel,直接js脚本语言就可以实现这个功能。。。function AllAreaExcel(){ var oXL = new ActiveXObject("Excel.Application");var oWB = o...

JAVA 导入数据库到Excel数据就是把图中Table中的信息放入Excel保存,需要...
将下载后的文件解包,得到jxl.jar,放入classpath,安装就完成了。基本操作 一、创建文件 拟生成一个名为“测试数据.xls”的Excel文件,其中第一个工作表被命名为“第一页”,大致效果如下: 代码(CreateXLS.java): \/\/生成Excel的类 import java.io.*; import jxl.*; import jxl.write.*; public class CreateXLS...

excel中的附件怎么提取java
3、最后,保存附件:将附件的内容保存到本地文件系统或指定位置。可以使用Java的IO类(如FileOutputStream)来将附件内容写入到目标文件中。

servlet将excel文件下载到本地问题
1.Servlet生成Excel文件并提示下载 2.直接编辑代码:response.reset();response.setContentType("application\/vnd.ms-excel"); \/\/改成输出excel文件 response.setHeader("Content-disposition","attachment; filename=file.xls" );OutputStream os =response.getOutputStream();Workbook wb;WritableWorkboo...

java将数据导出excel计算其文件大小
1.构建一个Excel对象2.将该对象写入一个OutPutStream而在构建过程中,没有地方写入OutPutSteam ,也就是说必须在内存中构建整个 Excel,才能进行写出操作,在大数据量情况下,这样将导致所有数据加载到内存中,而不能输出,导致最后 内存溢出。根据运行环境不用,可能内存溢出的 情况不同根据情况,如果数据量达到10W以上,建议...

JAVA后台用JXI怎么设置EXCEL文档格式.是设置WritableSheet还是设置...
API提供了两种方式来处理可写入的输出流,一种是直接生成本地文件,如果文件名不带全路径的话,缺省的文件会定位在当前目录,如果文件名带有全路径的话,则生成的Excel文件则会定位在相应的目录;另外一种是将Excel对象直接写入到输出流,例如:用户通过浏览器来访问Web服务器,如果HTTP头设置正确的话,浏览器自动调用客户端...

java上传下载的文件放在哪?
①将下载后的压缩文件解压为jar格式文件;②拷贝到手机或T卡任意位置;③然后在JAVA乐园中选择“查找JAVA应用”菜单,选择所需资源进行安装;④安装好后即可在“JAVA应用”菜单中使用。JavaWeb项目实现上传文件以及下载文件功能的关于路径的问题你这个项目用的maven来管理包和依赖的,但你不用太在意这个maven...

java如何输出xls格式的Excel表格文件
有个开源的东东-jxl.jar,可以到http:\/\/sourceforge.net\/project\/showfiles.php?group_id=79926下载。一.读取Excel文件内容 \/**读取Excel文件的内容 * @param file 待读取的文件 * @return *\/ public static String readExcel(File file){ StringBuffer sb = new StringBuffer(); Workbook wb = null; try ...

如何用Java实现word、excel等文档在线预览?
1.到官网下载Apache OpenOffice 安装包,安装运行。不同系统的安装方法,自行百度,这里不做过多说明。2.再项目的pom文件中引入依赖 <!--openoffice--><dependency><groupId>com.artofsolving<\/groupId><artifactId>jodconverter<\/artifactId><version>2.2.1<\/version><\/dependency> 3.将word、excel...

java批量上传文件?
文件从本地到服务器的功能,其实是为了解决目前浏览器不支持获取本地文件全路径。不得已而想到上传到服务器的固定目录,从而方便项目获取文件,进而使程序支持EXCEL批量导入数据。 java中文件上传到服务器的指定路径的代码: 在前台界面中输入: formmethod="post"enctype="multipart\/form-data"?action="..\/manage\/excel...

相似回答