`

JXL API生成EXCEL文件

    博客分类:
  • JXL
JXL 
阅读更多

JXL API生成EXCEL文件

import java.util.ArrayList;
import java.util.List;

import jxl.Workbook;
import jxl.format.Alignment;
import jxl.write.Label;
import jxl.write.WritableCellFormat;
import jxl.write.WritableFont;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;

public class ExcelDome {

	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;// 表名称样式

	

	// 生成Excel文件
	public void genarateExcel(File file) throws Exception {
		/******   定义表格格式start    *****/
		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);
		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.LEFT);
		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 jxl.write.WritableFont(WritableFont.createFont("微软雅黑"), 12, WritableFont.BOLD);
		wcf_title = new WritableCellFormat(wf_title);
		wcf_title.setAlignment(Alignment.LEFT);
		/******   定义表格格式end    *****/
		
		
		try {
			WritableWorkbook wb = Workbook.createWorkbook(file);
			WritableSheet ws = wb.createSheet("数据报表", 0);
			int startRowNum = 0;// 起始行
			int startColNum = 0;// 起始列
			int maxColSize = 4;// 最大列数
			// 设置列宽
			ws.setColumnView(0, 20);
			ws.setColumnView(1, 18);
			ws.setColumnView(2, 20);
			ws.setColumnView(3, 18);
			generateCells(ws, startRowNum++, startColNum, 1, MAXCOLS);
			ws.addCell(new Label(startColNum, startRowNum, "薪资计算周期:", wcf_title));
			ws.mergeCells(startColNum, startRowNum, startColNum + maxColSize- 1, startRowNum);
			startColNum = 0;
			startRowNum++;
			generateCells(ws, startRowNum++, startColNum, 1, MAXCOLS);
			//第1行
			ws.addCell(new Label(startColNum, startRowNum, "姓       名:",wcf_key));
			ws.mergeCells(startColNum, startRowNum, startColNum, startRowNum);
			startColNum = startColNum + 1;
			ws.addCell(new Label(startColNum, startRowNum, "SSS", wcf_key));
			ws.mergeCells(startColNum, startRowNum, startColNum, startRowNum);
			startColNum = startColNum + 1;
			ws.addCell(new Label(startColNum, startRowNum, "所 在 部 门:", wcf_key));
			ws.mergeCells(startColNum, startRowNum, startColNum, startRowNum);
			startColNum = startColNum + 1;
			ws.addCell(new Label(startColNum, startRowNum, "SSS", wcf_key));
			ws.mergeCells(startColNum, startRowNum, startColNum, startRowNum);
			startColNum = startColNum + 1;
			startRowNum++;
			startColNum = 0;
			//第1行		
			ws.addCell(new Label(startColNum, startRowNum, "出 勤 天 数:", wcf_key));
			ws.mergeCells(startColNum, startRowNum, startColNum, startRowNum);
			startColNum = startColNum + 1;
			ws.addCell(new Label(startColNum, startRowNum, "SSS", wcf_key));
			ws.mergeCells(startColNum, startRowNum, startColNum, startRowNum);
			startColNum = startColNum + 1;
			ws.addCell(new Label(startColNum, startRowNum, "在 职 状 态:", wcf_key));
			ws.mergeCells(startColNum, startRowNum, startColNum, startRowNum);
			startColNum = startColNum + 1;
			ws.addCell(new Label(startColNum, startRowNum, "XXXXXX", wcf_key));
			ws.mergeCells(startColNum, startRowNum, startColNum, startRowNum);
			startColNum = startColNum + 1;
			startRowNum++;
			startColNum = 0;
			ws.addCell(new Label(startColNum, startRowNum, "应发项目",wcf_name_right));
			ws.mergeCells(startColNum, startRowNum, startColNum + maxColSize- 1, startRowNum);
			startColNum = 0;
			startRowNum++;
			//第3行		
			ws.addCell(new Label(startColNum, startRowNum, "基 本 工 资:", wcf_key));
			ws.mergeCells(startColNum, startRowNum, startColNum, startRowNum);
			startColNum = startColNum + 1;
			ws.addCell(new Label(startColNum, startRowNum, "SSS", wcf_key));
			ws.mergeCells(startColNum, startRowNum, startColNum, startRowNum);
			startColNum = startColNum + 1;
			ws.addCell(new Label(startColNum, startRowNum, "保 密 工 资:", wcf_key));
			ws.mergeCells(startColNum, startRowNum, startColNum, startRowNum);
			startColNum = startColNum + 1;
			ws.addCell(new Label(startColNum, startRowNum, "XXXXXX", wcf_key));
			ws.mergeCells(startColNum, startRowNum, startColNum, startRowNum);
			startColNum = startColNum + 1;
			startRowNum++;
			startColNum = 0;
			//第3行		
			ws.addCell(new Label(startColNum, startRowNum, "佣 金 收 入:", wcf_key));
			ws.mergeCells(startColNum, startRowNum, startColNum, startRowNum);
			startColNum = startColNum + 1;
			ws.addCell(new Label(startColNum, startRowNum, "SSS", wcf_key));
			ws.mergeCells(startColNum, startRowNum, startColNum, startRowNum);
			startColNum = startColNum + 1;
			ws.addCell(new Label(startColNum, startRowNum, "提 成 点 数:", wcf_key));
			ws.mergeCells(startColNum, startRowNum, startColNum, startRowNum);
			startColNum = startColNum + 1;
			ws.addCell(new Label(startColNum, startRowNum, "SSS", wcf_key));
			ws.mergeCells(startColNum, startRowNum, startColNum, startRowNum);
			startColNum = startColNum + 1;
			startRowNum++;
			startColNum = 0;
			//第3行		
			ws.addCell(new Label(startColNum, startRowNum, "发 放 比 例:", wcf_key));
			ws.mergeCells(startColNum, startRowNum, startColNum, startRowNum);
			startColNum = startColNum + 1;
			ws.addCell(new Label(startColNum, startRowNum, "XXXXXX", wcf_key));
			ws.mergeCells(startColNum, startRowNum, startColNum, startRowNum);
			startColNum = startColNum + 1;
			ws.addCell(new Label(startColNum, startRowNum, "本月提成金额:", wcf_key));
			ws.mergeCells(startColNum, startRowNum, startColNum, startRowNum);
			startColNum = startColNum + 1;
			ws.addCell(new Label(startColNum, startRowNum, "XXXXXX", wcf_key));
			ws.mergeCells(startColNum, startRowNum, startColNum, startRowNum);
			startColNum = startColNum + 1;
			startRowNum++;
			startColNum = 0;
			//第3行		
			ws.addCell(new Label(startColNum, startRowNum, "转入佣金收入:", wcf_key));
			ws.mergeCells(startColNum, startRowNum, startColNum, startRowNum);
			startColNum = startColNum + 1;
			ws.addCell(new Label(startColNum, startRowNum, "SSS", wcf_key));
			ws.mergeCells(startColNum, startRowNum, startColNum, startRowNum);
			startColNum = startColNum + 1;
			ws.addCell(new Label(startColNum, startRowNum, "转入提成金额:", wcf_key));
			ws.mergeCells(startColNum, startRowNum, startColNum, startRowNum);
			startColNum = startColNum + 1;
			ws.addCell(new Label(startColNum, startRowNum, "XXXXXX", wcf_key));
			ws.mergeCells(startColNum, startRowNum, startColNum, startRowNum);
			startColNum = startColNum + 1;
			startRowNum++;
			startColNum = 0;
			//第3行		
			ws.addCell(new Label(startColNum, startRowNum, "餐       补:",wcf_key));
			ws.mergeCells(startColNum, startRowNum, startColNum, startRowNum);
			startColNum = startColNum + 1;
			ws.addCell(new Label(startColNum, startRowNum, "SSS", wcf_key));
			ws.mergeCells(startColNum, startRowNum, startColNum, startRowNum);
			startColNum = startColNum + 1;
			ws.addCell(new Label(startColNum, startRowNum, "应 发 小 计:", wcf_key));
			ws.mergeCells(startColNum, startRowNum, startColNum, startRowNum);
			startColNum = startColNum + 1;
			ws.addCell(new Label(startColNum, startRowNum, "XXXXXX", wcf_key));
			ws.mergeCells(startColNum, startRowNum, startColNum, startRowNum);
			startColNum = startColNum + 1;
			startRowNum++;
			startColNum = 0;
			ws.addCell(new Label(startColNum, startRowNum, "扣除项目",wcf_name_right));
			ws.mergeCells(startColNum, startRowNum, startColNum + maxColSize- 1, startRowNum);
			startColNum = 0;
			startRowNum++;
			//第5行
			ws.addCell(new Label(startColNum, startRowNum, "社 会 保 险:", wcf_key));
			ws.mergeCells(startColNum, startRowNum, startColNum, startRowNum);
			startColNum = startColNum + 1;
			ws.addCell(new Label(startColNum, startRowNum, "XXXXXX", wcf_key));
			ws.mergeCells(startColNum, startRowNum, startColNum, startRowNum);
			startColNum = startColNum + 1;
			ws.addCell(new Label(startColNum, startRowNum, "考 勤 扣 款:", wcf_key));
			ws.mergeCells(startColNum, startRowNum, startColNum, startRowNum);
			startColNum = startColNum + 1;
			ws.addCell(new Label(startColNum, startRowNum, "SSS", wcf_key));
			ws.mergeCells(startColNum, startRowNum, startColNum, startRowNum);
			startColNum = startColNum + 1;
			startRowNum++;
			startColNum = 0;
			//第5行		
			ws.addCell(new Label(startColNum, startRowNum, "工 作 扣 罚:", wcf_key));
			ws.mergeCells(startColNum, startRowNum, startColNum, startRowNum);
			startColNum = startColNum + 1;
			ws.addCell(new Label(startColNum, startRowNum, "XXXXXX", wcf_key));
			ws.mergeCells(startColNum, startRowNum, startColNum, startRowNum);
			startColNum = startColNum + 1;
			ws.addCell(new Label(startColNum, startRowNum, "个人所得税:", wcf_key));
			ws.mergeCells(startColNum, startRowNum, startColNum, startRowNum);
			startColNum = startColNum + 1;
			ws.addCell(new Label(startColNum, startRowNum,"SSS", wcf_key));
			ws.mergeCells(startColNum, startRowNum, startColNum, startRowNum);
			startColNum = startColNum + 1;
			startRowNum++;
			startColNum = 0;
			//第5行		
			ws.addCell(new Label(startColNum, startRowNum, "其       他:",wcf_key));
			ws.mergeCells(startColNum, startRowNum, startColNum, startRowNum);
			startColNum = startColNum + 1;
			ws.addCell(new Label(startColNum, startRowNum, "XXXXXX", wcf_key));
			ws.mergeCells(startColNum, startRowNum, startColNum, startRowNum);
			startColNum = startColNum + 1;
			ws.addCell(new Label(startColNum, startRowNum, "扣 除 小 计:", wcf_key));
			ws.mergeCells(startColNum, startRowNum, startColNum, startRowNum);
			startColNum = startColNum + 1;
			ws.addCell(new Label(startColNum, startRowNum, "XXXXXX", wcf_key));
			ws.mergeCells(startColNum, startRowNum, startColNum, startRowNum);
			startColNum = startColNum + 1;
			startRowNum++;
			startColNum = 0;
			generateCells(ws, startRowNum++, startColNum, 1, MAXCOLS);
			generateCells(ws, startRowNum++, startColNum, 1, MAXCOLS);
			ws.addCell(new Label(startColNum, startRowNum, "本月实际到账金额:",wcf_name_right));
			ws.mergeCells(startColNum, startRowNum, startColNum + maxColSize- 1, startRowNum);
			startColNum = 0;
			startRowNum++;
			
			
			wb.write();
			wb.close();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	// 生成空单元格
	public 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 {
		for(int c = 0; c < 3; c++){
			String name = "D:\\xls\\2012-01(我我我)+"+c+".xls";
			File file = new File(name);
			file.createNewFile();
			new ExcelDome().genarateExcel(file);
			System.out.println(file);		
                  }
		
	}
 
分享到:
评论

相关推荐

    jxl jar包(java生成EXCEL文件)

    java用于生成EXCEL等文件格式的包,直接导入到java工程即可,简单方便,另外还配有jxl api说明文档

    jxl 生成excel 简易教程

    jxl是对excel强有力的操纵工具,它具有丰富的API可以满足对excel的各种开发需要。

    java生成excel文件

    在java开发中,通过jxl.jar提供的api可以方便的生成你想要的excel文件。

    excel操作(jxl)

    java导入导出excel操作(jxl) ...最关键的是这套API是纯Java的,并不依赖Windows系统,即使运行在Linux下,它同样能够正确 的处理Excel文件。另外需要说明的是,这套API对图形和图表的支持很有限,而且仅仅识别PNG格式

    Java Excel API(jxl)

    通过java操作excel表格的工具类库 支持Excel 95-2000的所有版本 生成Excel 2000标准格式 支持字体、数字、日期操作 能够修饰单元格属性 支持图像和图表

    jxl.jar及api 解析excel很好的工具

    ● 支持Excel 95-2000的所有版本 ● 生成Excel 2000标准格式 ● 支持字体、数字、日期操作 ● 能够修饰单元格属性 ● 支持图像和图表

    Java_Excel_API_jxl_.rar_excel java_java excel

    Java_Excel_API_jxl入门及jxl.jar下载(java生成excel文件)

    JXL(Java操作Excel的源代码及例子)

    最关键的是这套API是纯Java的,并不依赖Windows系统,即使运行在Linux下,它同样能够正确的处理Excel文件。另外需要说明的是,这套API对图形和图表的支持很有限,而且仅仅识别PNG格式。 搭建环境 将下载后的文件...

    最新 JXL API

    通过java操作excel表格的工具...最关键的是这套API是纯Java的,并不依赖Windows系统,即使运行在Linux下,它同样能够正确的处理Excel文件。另外需要说明的是,这套API对图形和图表的支持很有限,而且仅仅识别PNG格式。

    jxl相关jar和api

    java用于解析生成Excel的工具的jar包和api~

    jxl操作Excel简单

    jxl操作Excel说明,及API文档,编写jxl不用愁

    ● 生成Excel 2000标准格式 jimet

    最关键的是这套API是纯Java的,并不依赖Windows系统,即使运行在Linux下,它同样能够正确的处理Excel文件。另外需要说明的是,这套API对图形和图表的支持很有限,而且仅仅识别PNG格式。 搭建环境 将下载后的文件...

    jxl.jar使用文档

    jxl.jar ...最关键的是这套API是纯Java的,并不依赖Windows系统,即使运行在Linux下,它同样能够正确的处理Excel文件。另外需要说明的是,这套API对图形和图表的支持很有限,而且仅仅识别PNG格式。

    jxl包帮助文档

    jxl包的功能主要是对Excel文件进行读写操作,可以生成Excel表格,对数据的导入、导出都很方便。这里是jxl包的API帮助文档。

    jxl-2.6.jar

    jxl.jar是通过java操作excel...最关键的是这套API是纯Java的,并不依赖Windows系统,即使运行在Linux下,它同样能够正确的处理Excel文件。另外需要说明的是,这套API对图形和图表的支持很有限,而且仅仅识别PNG格式。

    Excel数据操纵-jar包-jxl.jar

     读的时候是这样的一个思路,先用一个输入流(InputStream)得到Excel文件,然后用jxl中的Workbook得到工作薄,用Sheet从工作薄中得到工作表,用Cell得到工作表中得某个单元格.  InputStream-&gt;Workbook-&gt;Sheet-&gt;Cell,就...

    JAVA 解析 Excel 工具 Java 解析、生成 Excel 比较有名的框架.rar

    Java解析、生成Excel比较有名的框架有Apache poi、jxl。但他们都存在一个严重的问题就是非常的耗内存&#xff0c;poi有一套SAX模式的API可以一定程度的解决一些内存溢出的问题&#xff0c;但POI还是有一些缺陷&#xff0c;...

    EasyExcel(生成Excel报表)基本操作.pdf

    Java解析、生成Excel比较有名的框架有Apache poi、jxl。但他们都存在一个严重的问题就是非常的耗内存,poi有一套SAX模式的API可以一定程度的解决一些内存溢出的问题,但POI还是有一些缺陷,比如07版Excel解压缩以及...

    通过java操作excel表格的工具类库jxl

     读的时候是这样的一个思路,先用一个输入流(InputStream)得到Excel文件,然后用jxl中的Workbook得到工作薄,用Sheet从工作薄中得到工作表,用Cell得到工作表中得某个单元格。  InputStream-&gt;Workbook-&gt;Sheet-&gt;Cell,就...

    poi以及jxl相关的jar包下载

    生成Excel 2000标准格式 支持字体、数字、日期操作 能够修饰单元格属性 支持图像和图表,但是这套API对图形和图表的支持很有限,而且仅仅识别PNG格式。 缺点:效率低,图片支持不完善,对格式的支持不如POI强大 二、...

Global site tag (gtag.js) - Google Analytics