我有一个简单的表格,我想通过点击按钮导出到Excel文件。
我在JavaScript中编写了一个函数,但我不确定会出现什么问题。
function CreateExcelSheet()
{
var x=myTable.rows
var xls = new ActiveXObject("Excel.Application")
xls.visible = true
xls.Workbooks.Add
for (i = 0; i < x.length; i++)
{
var y = x[i].cells
for (j = 0; j < y.length; j++)
{
xls.Cells( i+1, j+1).Value = y[j].innerText
}
}
}
这是JSP页面上的按钮:
</table>
<input type="button" onclick="CreateExcelSheet()" value="Export"></input>
</form>
它曾经提前工作但现在不能正常工作。还有其他办法吗?
答案 0 :(得分:1)
您可以使用Apache POI。这是一个例子。
http://www.koders.com/java/fid8624B82721FCB1B8C982E6BA5D17D2C7DD87D09C.aspx?s=HSSF+main+excel#L19
它创建“Workbook”,然后在名为make2的方法中创建一个“Sheet”并添加行和单元格。单元格的值作为Vector传递给方法。
另一个选择是您可以使用displaytag。 display标签有一个功能,允许用户将html表导出到excel文件。
答案 1 :(得分:0)
一个非常简单的替代方法是调用一个servlet,该servlet返回一个从html表标签创建的xls(这适用于您可能想要使用POI的复杂表格的非常简单的表)。从CodeRanch resource开始。
在你的jsp中你有这个:&lt; form method =“post” 行动= “DownloadAsExcel” &GT; &LT;输入 type =“submit”name =“submit”value =“下载 作为Excel“/&gt;&lt; / form&gt;
在你的后端:
public class DownloadAsExcel extends HttpServlet {
public void doPost(HttpServletRequest req,HttpServletResponse res)
{
res.setContentType("application/vnd.ms-excel");
PrintWriter out=res.getWriter();
out.println("<table>");
out.println("<tr bgcolor=lightblue><td>Hello </td><td>James</td></tr>");
out.close();
}
}
答案 2 :(得分:0)
<script language="javascript">
function runApp()
{
var x=myTable.rows;
var Excel = new ActiveXObject("Excel.Application");
Excel.visible = true;
var Book = Excel.Workbooks.Add();
for (i = 0; i < x.length; i++)
{
var y = x[i].cells;
for (j = 0; j < y.length; j++)
{
Book.ActiveSheet.Cells( i+1, j+1).Value = y[j].innerText;
}
}
}
</script>