下面是一些利用jxl操作excel的方法,這個class不能直接用,只是一個模板,涉及到一些像是excel存儲格格式,字體,顏色,存儲格大小,文檔名稱之類的一些零星方法...
/**
* 產生Excel
* @param conn 資料庫連結
* @param form 報價單查詢Form
* @return byte[] excel內容
*/
public byte[] getExcel(Connection conn, QuotationForm form)
{
//初始化,字節流
ByteArrayOutputStream baos = new ByteArrayOutputStream();
WritableWorkbook workbook = null;
//引用WritableWorkbook
workbook = Workbook.createWorkbook(baos);
//引用WritableSheet,sheet名
WritableSheet sheet = workbook.createSheet("報價單", 0);
//設置單元格的寬度
sheet.setColumnView(0, 10);
sheet.setColumnView(1, 12);
sheet.setColumnView(2, 15);
sheet.setColumnView(3, 10);
//詳細資料字體
WritableFont detail = new WritableFont(WritableFont.createFont("新細明體"),10,WritableFont.NO_BOLD,false);
WritableCellFormat cellformat = new WritableCellFormat(detail);
//紅色字體
WritableFont redInfo = new WritableFont(WritableFont.createFont("新細明體"),10,WritableFont.NO_BOLD,false, jxl.format.UnderlineStyle.NO_UNDERLINE,jxl.format.Colour.RED);
WritableCellFormat redcellformat = new WritableCellFormat(redInfo);
//粉色字體
WritableFont pinkInfo = new WritableFont(WritableFont.createFont("新細明體"),10,WritableFont.NO_BOLD,false,jxl.format.UnderlineStyle.NO_UNDERLINE,jxl.format.Colour.PINK);
WritableCellFormat pinkcellformat = new WritableCellFormat(pinkInfo);
//樣式(居中)
cellformat.setAlignment(jxl.format.Alignment.CENTRE);
redcellformat.setAlignment(jxl.format.Alignment.CENTRE);
pinkcellformat.setAlignment(jxl.format.Alignment.CENTRE);
//大標題
WritableFont title = new WritableFont(WritableFont.createFont("新細明體"), 20, WritableFont.BOLD,false);
WritableCellFormat cellformat_title = new WritableCellFormat(title);
cellformat_title.setAlignment(Alignment.CENTRE);
//小標題
WritableFont sub_title = new WritableFont(WritableFont.createFont("新細明體"),12,WritableFont.BOLD,false);
WritableCellFormat cellfornat_subtitle = new WritableCellFormat(sub_title);
cellfornat_subtitle.setAlignment(Alignment.CENTRE);
//左對齊
WritableCellFormat cellformat_left = new WritableCellFormat(sub_title);
cellformat_left.setAlignment(Alignment.LEFT);
//右對齊
WritableCellFormat cellformat_right = new WritableCellFormat(detail);
cellformat_right.setAlignment(Alignment.RIGHT);
//存儲格樣式,保留兩位小數
NumberFormat scale2format = new NumberFormat("#0.00");
WritableCellFormat numbercellformat_scale2 = new WritableCellFormat(detail,scale2format);
numbercellformat_scale2.setAlignment(Alignment.RIGHT);
int num = 0;
//表頭
sheet.mergeCells(0, num, 14, num);
sheet.addCell( new jxl.write.Label( 0, num, "報 價 單 查 詢", cellformat_title ) ) ;
num ++;
//表頭
sheet.mergeCells(0, num, 14, num);
sheet.addCell(new jxl.write.Label(0, num, "當前查詢條件:", cellformat_left));
num ++;
........
//資料(居中對齊)
sheet.addCell(new jxl.write.Label(0, num, form.getQuoid(),cellformat));
//右對齊
sheet.addCell(new jxl.write.Number(1, num, Integer.parseInt(quom), cellformat_right));
//保留兩位小數點的數字存儲格
sheet.addCell(new jxl.write.Number(5, num, Double.valueOf(avgm).doubleValue(), numbercellformat_scale2));
//粉紅色文字的存儲格
sheet.addCell(new jxl.write.Label(9, ++ num, stonename, pinkcellformat));
//寫入
workbook.write();
//關閉
workbook.close();
//傳回
return baos.toByteArray();
}
加下下面這段JSP代碼就完整了,你要作的就是修改一下上面那個java類的具體內容,直接調用下面這個jsp就可以了
<%--
//2008/08/20 Jackter 加入國際化支援
/**
* <P> Title:匯出excel </P>
* <P> Description:匯出excel </P>
* <P> Copyright:Copyright (c) 2008/08/11 </P>
* <P> Company:Everunion Tech. Ltd. </P>
* @author Jackter
* @version 0.2 Original Design from design document.
*/
--%><%@page contentType="application/octet-stream; charset=UTF-8"%><%@page import="java.sql.*,java.lang.*,java.text.*,java.util.*,java.io.*"%><%
//緩存不清除(否則文件址直接開啟時會出現找不到文件的例外,不可省略)
response.setHeader("Pragma", "cache");
response.setHeader("Cache-Control", "cache");
//response.setHeader("Pragma", "no-cache");
//response.setHeader("Cache-Control", "no-cache");
//取得語言環境
String ctylgn = ((Locale)session.getAttribute("org.apache.struts.action.LOCALE")).toString();
String alertMes = "";
//如果是繁體中文
if ( "zh_TW".equals(ctylgn) )
alertMes = "此檔案已刪除!";
//如果是簡體中文
else if ( "zh_CN".equals(ctylgn) )
alertMes = "此档案已删除!";
//如果是英文
else if ( "en".equals(ctylgn) )
alertMes = "This file has been deleted!";
//取得文件名
String filename = (String)request.getAttribute("filename");
//設定頭部
response.setContentType("application/octet-stream");
//設定下載檔案名稱
response.addHeader("Content-Disposition", "attachment;filename="
+ new String(filename.getBytes(), "ISO-8859-1"));
//取得流物件
byte[] data = (byte[])request.getAttribute("ExcelDATA");
ByteArrayInputStream in = new ByteArrayInputStream(data);
try
{
//建立流傳輸物件
java.io.OutputStream os = response.getOutputStream();
//輸出
int read = -1;
byte buf[] = new byte[2048];
int k = 0;
//寫入
while ( (read = ((InputStream)in).read(buf)) != -1 )
{
os.write(buf, 0, read);
}
//寫入
os.flush();
}
//例外
catch ( Exception e )
{
e.printStackTrace();
System.out.println(alertMes);
}
//關閉
finally
{
//關閉
//os.flush();
//os.close();
in.close();
in = null;
//此段程式用於防止程式拋出"getOutputStream() has already been called for this response"例外
response.flushBuffer();
out.clear();
out = pageContext.pushBody();
}
%>
下面附上jxl.jar包。
分享到:
相关推荐
### jxl操作Excel文件知识点详解 ...虽然 jxl 的功能相比 Apache POI 较为简单,但对于简单的 Excel 文件操作而言,它是一个轻量级且高效的解决方案。在实际开发过程中,您可以根据项目的具体需求选择合适的工具。
本篇将详细介绍如何利用`jxl`库来操作Excel文件,并结合实例说明如何从Excel文件中提取数据并生成TXT文件。 首先,我们需要理解`jxl`库的基本结构。`jxl`库主要提供了`Workbook`、`Sheet`、`Cell`等类,分别对应...
JXL库支持多种Excel文件操作,包括但不限于: 1. **读取Excel文件**:你可以使用`Workbook`类的`read(File)`方法打开一个Excel文件。然后,通过`getSheets()`获取工作簿中的所有工作表,进一步使用`getSheet(int ...
JXL 操作 EXCEL 的各个类的解析是 Java 语言中操作 Excel 文件的主要方法之一。JXL 通过提供了多种类来实现对 Excel 文件的读写操作。 首先,JXL 提供了一个抽象类 Workbook,该类相当于是一个工具类,用于生成 ...
本篇文章将深入探讨JXL库在操作Excel和数据库导出Excel文件方面的应用。 首先,我们来了解JXL的基本用法。JXL支持读取和写入Biff8格式的Excel文件(即97-2003版本的.XLS文件),这涵盖了大部分常见的Excel文件需求...
1. **创建新Excel文档**:通过JXL,你可以创建一个新的Excel工作簿,并添加工作表,设置单元格的样式、颜色、字体等。 2. **读取Excel文档**:可以打开已存在的Excel文件,读取其中的数据,包括文本、数字、日期、...
Java Excel API(简称JXL)是一个开源库,用于在Java应用程序中读取、写入和修改Excel文件。这个工具包提供了方便的接口和类,...结合提供的API文档和示例,你将能够轻松地掌握如何使用JXL来满足各种Excel操作需求。
在Java编程环境中,处理Excel数据是一项常见的任务,而`jxl`库是一个广泛使用的开源库,专门用于读取和写入Microsoft Excel文件。本篇将详细介绍如何使用`jxl`库进行Excel的操作,包括导入、导出、读取以及更新Excel...
JXL操作Excel设置字体颜色设置单元格详解 JXL是一个韩国人写的Java操作Excel的工具,在开源世界中,有两套比较有影响的API可供使用,一个是POI,一个是jExcelAPI。其中功能相对POI比较弱一点。但jExcelAPI对中文...
在Java编程环境中,有时我们需要处理Excel文件,例如读取数据、写入数据或者进行复杂的表格操作。在这种情况下,`jxl`库是一个非常实用的工具。`jxl`库允许开发者使用Java语言来读写Microsoft Excel文件,无需依赖于...
JXL库是一个广泛使用的Java库,它允许开发者读取、写入和修改Excel文件。本篇将深入探讨如何使用JXL库在Java中打印Excel报表。 首先,要使用JXL库,你需要在项目中引入它的依赖。在本例中,`jxl.jar`是JXL库的核心...
### 使用JXL库下载并处理Excel文件 #### 知识点概述 本文将详细介绍如何使用JXL库结合Java网络编程技术来实现从指定URL下载Excel文件,并将其保存到本地指定目录的功能。此外,我们还将简单介绍如何使用JXL库读取...
总之,`jxl`库提供了强大的功能来操作Excel文件,通过`WritableWorkbook`、`WritableSheet`和`WritableCellFormat`这三个核心类,我们可以实现自定义的Excel导出任务,包括添加水印等高级功能。在实际开发中,结合...
在Java编程环境中,处理Excel文件是一项常见的...通过阅读提供的"jxl操作EXCEL.docx"文档,你可以获得更详细的使用指南和示例代码。记住,理解和熟练掌握JXL库的使用,能极大地提升你在Java项目中处理Excel文件的效率。
这个"jxl操作excel Demo"显然是一份示例代码,它展示了如何使用jxl库来与Excel文件进行交互。以下是对jxl库和其在处理Excel文件中使用方法的详细说明。 1. **jxl库介绍** jxl是一个开源的Java库,允许开发者在Java...
Java中的JXL库是一个广泛使用的库,用于读取和写入Microsoft Excel文件。这个库使得在Java应用程序中处理Excel数据变得简单,而无需依赖于Microsoft Office。以下是对JXL库在进行Excel读写操作时的一些关键知识点的...
在"Struts2+JXL 下载 Excel 文档"的场景中,开发者通常会创建一个Action,这个Action负责生成Excel文档并提供下载。用户通过浏览器访问特定URL,Struts2框架接收到请求后,会路由到相应的Action。Action内部会利用...
Java中的JExcelAPI是一个用于操作Microsoft Excel文件的库,尤其适用于需要在Java应用程序中读取、写入或修改Excel数据的场景。与Apache POI相比,JExcelAPI更轻量级,对中文支持良好,且不需要依赖Windows系统,...
这个"Java jxl操作Excel97-2003 eclipse可运行项目实例"提供了一个实用的示例,帮助开发者了解如何在Eclipse环境中使用jxl库与Excel97-2003版本的文件进行交互。 1. **jxl库介绍** jxl库是Java编程语言中的一个...