import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Font;
import java.io.File;
import java.io.IOException;
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.sql.SQLException;
import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.List;
import sun.security.krb5.internal.crypto.c;
import com.sun.java_cup.internal.internal_error;
import jxl.Workbook;
import jxl.format.Alignment;
import jxl.format.Colour;
import jxl.format.UnderlineStyle;
import jxl.write.Label;
import jxl.write.Number;
import jxl.write.NumberFormats;
import jxl.write.WritableCell;
import jxl.write.WritableCellFormat;
import jxl.write.WritableFont;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException;
import jxl.write.biff.RowsExceededException;
public class ExcelReport {
private static WritableCellFormat wcf_value;//表格数据样式
private static WritableCellFormat wcf_value_left;
private static WritableCellFormat wcf_key;//表头样式
private static WritableCellFormat wcf_name_left;//表名样式
private static WritableCellFormat wcf_name_right;//表名样式
private static WritableCellFormat wcf_name_center;//表名样式
private static WritableCellFormat wcf_title;//页名称样式
private static WritableCellFormat wcf_percent_float;
private static final int MAXCOLS=7;//表名称样式
static{
try {
//WritableFont wf_value = new WritableFont(WritableFont.ARIAL,10,WritableFont.NO_BOLD);
WritableFont wf_key = new jxl.write.WritableFont(WritableFont.createFont("微软雅黑"), 10,WritableFont.BOLD);
WritableFont wf_value = new jxl.write.WritableFont(WritableFont.createFont("微软雅黑"), 10,WritableFont.NO_BOLD);
wcf_value = new WritableCellFormat(wf_value);
wcf_value.setAlignment(jxl.format.Alignment.CENTRE);
wcf_value.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE);
wcf_value.setBorder(jxl.format.Border.ALL, jxl.format.BorderLineStyle.THIN);
wcf_value_left = new WritableCellFormat(wf_value);
wcf_value_left.setAlignment(jxl.format.Alignment.LEFT);
wcf_value_left.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE);
wcf_value_left.setBorder(jxl.format.Border.ALL, jxl.format.BorderLineStyle.THIN);
wcf_value_left.setWrap(true);
//WritableFont wf_key = new WritableFont(WritableFont.ARIAL,10,WritableFont.BOLD);
wcf_key = new WritableCellFormat(wf_key);
wcf_key.setAlignment(jxl.format.Alignment.CENTRE);
wcf_key.setBorder(jxl.format.Border.ALL, jxl.format.BorderLineStyle.THIN);
wcf_name_left = new WritableCellFormat(wf_key);
wcf_name_left.setAlignment(Alignment.LEFT);
wcf_name_left.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE);
wcf_name_right = new WritableCellFormat(wf_key);
wcf_name_right.setAlignment(Alignment.RIGHT);
wcf_name_center = new WritableCellFormat(wf_key);
wcf_name_center.setAlignment(Alignment.CENTRE);
jxl.write.NumberFormat wf_percent_float = new jxl.write.NumberFormat("0.00");
wcf_percent_float= new jxl.write.WritableCellFormat(wf_value,wf_percent_float);
wcf_percent_float.setAlignment(jxl.format.Alignment.CENTRE);
wcf_percent_float.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE);
wcf_percent_float.setBorder(jxl.format.Border.ALL, jxl.format.BorderLineStyle.THIN);
//WritableFont wf_title = new WritableFont(WritableFont.ARIAL,14,WritableFont.BOLD);
WritableFont wf_title = new jxl.write.WritableFont(WritableFont.createFont("微软雅黑"), 14,WritableFont.BOLD);
wcf_title = new WritableCellFormat(wf_title);
wcf_title.setAlignment(Alignment.CENTRE);
} catch (WriteException e) {
e.printStackTrace();
}
}
//生成Excel文件
public void genarateExcel(File file)throws Exception{
WritableWorkbook wb = Workbook.createWorkbook(file);
WritableSheet ws = wb.createSheet("数据报表",0);
int startRowNum=0;//起始行
int startColNum=0;//起始列
int maxColSize = 7;//最大列数
//设置列宽
ws.setColumnView(0, 18);
ws.setColumnView(1, 17);
ws.setColumnView(2, 19);
ws.setColumnView(3, 14);
ws.setColumnView(4, 13);
ws.setColumnView(5, 11);
ws.setColumnView(6, 18);
ws.addCell(new Label(startColNum,startRowNum,"学生信息报表",wcf_title));
ws.mergeCells(startColNum,startRowNum, startColNum+maxColSize-1,startRowNum);
startColNum=0;
startRowNum++;
ws.addCell(new Label(startColNum,startRowNum, "2011年04月08日",wcf_name_right));
ws.mergeCells(startColNum,startRowNum, startColNum+maxColSize-1,startRowNum);
startColNum=0;
startRowNum++;
generateCells(ws,startRowNum++,startColNum,1,MAXCOLS);
ws.addCell(new Label(startColNum,startRowNum,"姓名",wcf_key));
ws.mergeCells(startColNum, startRowNum, startColNum+1, startRowNum);
startColNum=startColNum+2;
ws.addCell(new Label(startColNum,startRowNum,"性别",wcf_key));
ws.mergeCells(startColNum, startRowNum, startColNum+1, startRowNum);
startColNum=startColNum+2;
ws.addCell(new Label(startColNum,startRowNum,"年龄",wcf_key));
ws.mergeCells(startColNum, startRowNum, startColNum+1, startRowNum);
startColNum=startColNum+2;
ws.addCell(new Label(startColNum,startRowNum,"住址",wcf_key));
startRowNum++;
startColNum=0;
for(int i=0;i<10;i++){
int rowIndx = startRowNum+i;
ws.addCell(new Label(startColNum,rowIndx,"姓名"+i,wcf_value));
ws.mergeCells(startColNum, rowIndx, startColNum+1, rowIndx);
startColNum=startColNum+2;
ws.addCell(new Label(startColNum,rowIndx,(i%2==0)?"男":"女",wcf_value));
ws.mergeCells(startColNum, rowIndx, startColNum+1, rowIndx);
startColNum=startColNum+2;
ws.addCell(new Number(startColNum,rowIndx,i+15,wcf_value));
ws.mergeCells(startColNum, rowIndx, startColNum+1, rowIndx);
startColNum=startColNum+2;
ws.addCell(new Label(startColNum,rowIndx,"住址"+i,wcf_value));
startColNum=0;
}
wb.write();
wb.close();
}
//生成空单元格
public static void generateCells(WritableSheet ws,int startRows,int startColNums,int rows,int cols){
for(int r=0;r<rows;r++){
for(int c = 0;c<cols;c++){
try {
ws.addCell(new Label(startColNums+c,startRows+r,""));
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
public static void main(String[] args) throws Exception {
File file = new File("D:\\text.xls");
file.createNewFile();
new ExcelReport().genarateExcel(file);
}
}
分享到:
相关推荐
总结来说,Java利用JXL库生成Excel文件是通过创建工作簿、工作表、单元格,并设置它们的属性和内容来实现的。JXL提供了广泛的API来处理各种复杂的Excel操作,是Java环境下生成Excel文件的一个实用工具。
在Java开发中,生成和处理Excel文件是一...总的来说,通过JXL库,Java开发者可以方便地生成和打印Excel报表,满足各种数据展示和导出的需求。尽管JXL有一些限制,但其简单易用的API使得它成为小型项目的一个不错选择。
"jxl模版生成excel" 指的是使用JExcelAPI(简称jxl)这个Java库来创建基于模板的Excel文件。JExcelAPI是一个开源项目,允许程序开发者读写Microsoft Excel文件,它支持从Java数据结构直接导出到Excel格式,同时也可...
本文将详细介绍如何利用Java编程语言结合JXL和Apache POI库来实现给Excel文档添加动态水印的功能。 #### 技术栈介绍 - **JXL**: 是一个用于读写Excel文件的Java库,支持多种Excel版本,包括.xls格式。 - **Apache ...
这篇博客“利用Jxl生成excel文件”提供了关于如何使用Jxl库创建Excel文档的指导。 首先,Jxl库允许开发者在Java程序中直接操作Excel格式的数据,而无需依赖Microsoft Office套件。它支持多种Excel功能,如单元格...
在Java编程环境中,生成Excel报表是一项常见的任务,尤其在数据处理和数据分析中。Apache POI 和 JExcelAPI(JXL)是两个广泛使用的库,分别用于处理Microsoft Office的POI格式(包括Excel)和Java环境中的Excel文件...
通过分析和运行这些代码,开发者可以更好地理解和学习如何在Java中利用jxl库生成Excel表格。这有助于提高在实际开发中处理Excel文件的能力,特别是对于那些需要从文本数据生成报表或者进行数据交换的项目,jxl是一个...
利用jxl包结合java反射机制和注释,直接把list生成对应的Excel文件,即只需传入list、对应生成的对象、标题就可以生成excel文件write(String title, List list,Class c),实现一个简单生成excel工具类
Java使用JXL库进行Excel操作是Java开发中常见的任务,特别是在数据处理、报表生成和数据分析等领域。JXL是一个流行的开源库,它提供了丰富的API来读取、写入和修改Microsoft Excel文件。以下是对这个主题的详细说明...
在Java编程领域,处理Excel文件是一项常见的任务,特别是在数据分析、数据导入导出或者报表生成等场景。JXL库是一个广泛使用的开源库,它允许开发者在Java应用程序中方便地读取和写入Excel文件。本篇将详细介绍如何...
总的来说,`jxl`库为Java开发者提供了一种简单而实用的方式来处理Excel文件,特别适合那些需要在后端生成Excel报告或者与Excel交互的应用场景。通过熟练掌握其API,可以实现高效的数据导入导出和报表生成。
在Java编程中,生成Excel和读取Word文档是常见的任务,尤其在数据处理、报告生成或数据导出等场景中。这里我们将详细讨论如何使用jxl库来完成这些任务。 首先,jxl是一个广泛使用的开源Java库,它允许开发者方便地...
通过上述步骤,你就可以使用Java的JXL库创建具有各种特性的Excel文件了。在实际开发中,可以将这些功能封装成方法,以方便复用和维护。在给定的示例代码`JExcelTest`中,你应该能看到这些功能的具体实现,这将帮助你...
这篇博客文章结合了这两个技术,展示了如何在Struts2应用中生成Excel文件并将其导出给用户下载。 在Java开发中,导出数据到Excel是常见的需求,特别是在处理大量结构化数据时,如报表或数据分析。JXL库提供了一个...
1. **创建新Excel文档**:通过JXL,你可以创建一个新的Excel工作簿,并添加工作表,设置单元格的样式、颜色、字体等。 2. **读取Excel文档**:可以打开已存在的Excel文件,读取其中的数据,包括文本、数字、日期、...
虽然其功能相较于Apache POI可能略显简单,但在处理中文字符方面表现优异,且由于其纯Java实现,无需依赖任何特定操作系统如Windows,即便在Linux环境下也能完美解析和生成Excel文件。然而,jxl对于复杂图形和图表的...
Java中的JXL库是一个非常实用的工具,它允许开发者在应用程序中读取、写入和修改Excel文件。这个库特别适合那些需要处理大量数据并希望将数据格式化为表格的项目。下面我们将深入探讨JXL库在Java Excel解析中的应用...
Java生成Excel是常见的数据处理需求,特别是在大数据导出、报表制作和数据分析场景中。JXL是一个流行的Java库,专门用于处理Microsoft Excel文件。本实例将详细介绍如何使用JXL库在Java中生成、读取、复制和修改...
通过这个项目实例,开发者可以学习到如何在Java中使用jxl库高效地处理Excel数据,从而在业务应用中实现数据导入导出、报表生成等功能。同时,也可以根据需求扩展这些基础示例,实现更复杂的功能,比如处理公式、图表...