乔山办公网我们一直在努力
您的位置:乔山办公网 > excel表格制作 > 用JavaScript怎么生成EXCEL-浏览器导出excel js,浏览器导出excel怎么设置

用JavaScript怎么生成EXCEL-浏览器导出excel js,浏览器导出excel怎么设置

作者:乔山办公网日期:

返回目录:excel表格制作


简单的办法:使用js生成一个table,可以直接复制到excel中,网上有很多表格插件。

复杂的办法:js传递数据到e79fa5e98193e4b893e5b19e332服务器,服务器生成表格后返回一个下载链接。



<script>
function printToExcel(html) {
try{
var ExApp = new ActiveXObject("Excel.Application")
var ExWBk = ExApp.workbooks.add()
var ExWSh = ExWBk.worksheets(1)
ExApp.DisplayAlerts = false
ExApp.visible = true
}catch(e){
alert("您所设定的安全级别太高,或者您的电脑没有安装Microsoft Excel软件!")
return false
}
window.clipboardData.setData("Text", html);
ExWBk.worksheets(1).Paste;
ExWBk.worksheets(1).Columns.AutoFit;
ExWBk.worksheets(1).Rows.AutoFit;
}

function exportToExcel(table)
{
if(confirm("确认7a686964616fe59b9ee7ad94334要导出吗?")){
var oXL = new ActiveXObject("Excel.Application");
var oWB = oXL.Workbooks.Add();
var oSheet = oWB.ActiveSheet;
var hang = table.rows.length;
var lie = table.rows(0).cells.length;
for (i=0;i<hang;i++)
{
for (j=0;j<lie;j++)
{
oSheet.Cells(i+1,j+1).Value = table.rows(i).cells(j).innerText;
}
}
oXL.Visible = true;
oXL.UserControl = true;
}
}
if(confirm("是否导出表格数据为 Excel?")) {
printToExcel(dataArea.innerHTML);
}
</script>
<!-- 以下为数据区 -->
<div id="dataArea">
<font color=red>test表</font>
<table border="1" cellpadding="0" style="border-collapse: collapse; " bordercolor="#000000">
<tbody>
<tr><td>1</td><td>1-1</td><td>1-2</td></tr>
<tr><td>2</td><td>2-1</td><td>2-2</td></tr>
<tr><td>3</td><td>3-1</td><td>3-2</td></tr>
<tr><td>4</td><td>4-1</td><td>4-2</td></tr>
</tbody>

</table>

</div>
java中导出Excel有两个组件可以使用,一个是jxl,一个是POI,我这里用的是POI。导出是可以在服务器上生成文件,然后下载,也可以利用输出流直接在网页
中弹出对话框提示用户保存或下载。生成文件的方式会导致服务器中存在着垃圾文件,实现方式不太优雅,所以这里我采用的是后面直接通过输出流的方式。
1、修改WEB服务器的CONF/web.xml,添加
<mime-mapping>
<extension>xls</extension>
<mime-type>application/vnd.ms-excel</mime-type>
</mime-mapping>

如果不添加这个,那么在网页中下载的时候就变成了JSP文件

2、download.jsp文件

<%@ page contentType="application/vnd.ms-excel" language="java" import="java.util.*,com.shangyu.action.WriteExcel" pageEncoding="GBK"%><%
response.setHeader("Content-Disposition","attachment;filename=test123.xls");//指定下载的文件名
response.setContentType("application/vnd.ms-excel");
WriteExcel we=new WriteExcel();
we.getExcel("111.xls",response.getOutputStream());
%>

注意不要有html代码,并且除了<% %> 中间的代码,其e68a84e799bee5baa6362它的地方不要有空格。否则在导出文件的时候会在后台出现异常,虽然不影响程序的使用,到时令人看起来
不太舒服

3、WriteExcel.java 生成Excel的JavaBean,复杂的应用请查看API

package com.shangyu.action;
import java.io.*;

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;
public class WriteExcel
{

public void getExcel(String sheetName,OutputStream output)
{
HSSFWorkbook wb=new HSSFWorkbook();
HSSFSheet sheet1=wb.createSheet("sheet1");
HSSFRow row=sheet1.createRow((short)0);
HSSFCell cell=row.createCell((short)0);
cell.setCellValue(1);

row.createCell((short)1).setCellValue(2);
row.createCell((short)2).setCellValue(3);
row.createCell((short)3).setCellValue("中文字符");

row=sheet1.createRow((short)1);
cell=row.createCell((short)0);
cell.setCellValue(1);

row.createCell((short)1).setCellValue(2);
row.createCell((short)2).setCellValue(3);
row.createCell((short)3).setCellValue("中文字符");

//FileOutputStream fileout=new FileOutputStream("workbook.xls");

try {
output.flush();
wb.write(output);
output.close();
} catch (IOException e) {
e.printStackTrace();
System.out.println( "Output is closed ");
}
}
}

通过以上三步,应该可以直接生成Excel文件下载或保存了,这在一些信息系统中相当有用。

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/shangyu79/archive/2008/07/21/2682541.aspx

使用js在浏览器上导excel方法详见:http://jingyan.baidu.com/article/bea41d43a875e4b4c51be6f6.html

相关阅读

关键词不能为空
极力推荐

ppt怎么做_excel表格制作_office365_word文档_365办公网