~~
code:
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
import jxl.format.Alignment;
import jxl.format.Border;
import jxl.format.BorderLineStyle;
import jxl.format.Colour;
import jxl.format.VerticalAlignment;
import jxl.read.biff.BiffException;
import jxl.write.Label;
import jxl.write.WritableCellFormat;
import jxl.write.WritableFont;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
public class JxlTest
{
public static void main(String[] args)
{
List<String[]> list = readExcel("bbb.xls");
for (String[] s : list)
{
// System.out.println(Arrays.asList(s).toString());
}
toExcelTest("ccc.xls");
}
/**
* 用COMMON UPLOAD进行EXCEL文件上传,得到fileItem对象,这里 进行解析,返回集合对象。该方法适合在WEB项目中使用。
*
* @param fileItem
* @param beginIndex
* 正式数据的起始行 例如EXCEL文件 有大标题和小标题和列标题,那么该参数应为 4
* @return
* @throws BiffException
* @throws IOException
*/
public static List<String[]> readExcel(String fileName)
{
int beginIndex = 1;
// 保存结果集
List<String[]> result = null;
// 保存EXCEL每行的所有单元格中的数据
String[] temp = null;
try
{
File file = new File(fileName);
Workbook workBook = Workbook.getWorkbook(file);
Sheet sheet = workBook.getSheet(0);
Cell cell = null;
int rowSize = sheet.getRows();
int colSize = sheet.getColumns();
result = new ArrayList<String[]>();
for (int i = beginIndex - 1; i < rowSize; i++)
{
// 保存EXCEL每行的所有单元格中的数据
temp = new String[colSize];
for (int t = 0; t < colSize; t++)
{
cell = sheet.getCell(t, i);
String content = "";
if (cell.getContents() != null)
{
// 去空格,特殊字符和回车键盘
content = cell.getContents().replace("%", "").replace("|", "").replace(" ", "").replaceAll(
"\\n", "").replaceAll("\\r", "").trim();
}
temp[t] = content;
}
// 将每列的的数据存入结果集中
result.add(temp);
}
} catch (Exception ex)
{
ex.printStackTrace();
}
return result;
}
/**
*
* 生成excel
*
* @param fileName
* @author
* @date
*/
public static void toExcelTest(String fileName)
{
// 初始化工作表
WritableWorkbook workbook = null;
try
{
// 设置弹出对话框
// 创建工作表
workbook = Workbook.createWorkbook(new File(fileName));
// 定义工作表 sheet 标题
WritableSheet ws = workbook.createSheet("Mapping", 0);
ws.getSettings().setShowGridLines(true);
ws.getSettings().setProtected(false);
// 控制列的宽度,如果你要不给一样的宽度,就单独写,i代表的是列的下标,从0开始 ,从左到右
for (int i = 0; i < 7; i++)
{
ws.setColumnView(i, 20);
}
// 創建标题列名称
Label titleLabel = null;
titleLabel = new Label(0, 0, "StuNo", getHeadFormat());
ws.addCell(titleLabel);
titleLabel = new Label(1, 0, "StuName", getHeadFormat());
ws.addCell(titleLabel);
titleLabel = new Label(2, 0, "StuMoniter", getHeadFormat());
ws.addCell(titleLabel);
titleLabel = new Label(3, 0, "StuAddr", getHeadFormat());
ws.addCell(titleLabel);
titleLabel = new Label(4, 0, "Stu TELL", getHeadFormat());
ws.addCell(titleLabel);
titleLabel = new Label(5, 0, "Stu sex", getHeadFormat());
ws.addCell(titleLabel);
titleLabel = new Label(6, 0, "Stu classNo", getHeadFormat());
ws.addCell(titleLabel);
// 循环添加对象数据
for (int i = 0; i < 2; i++)
{
Label stuNoLabel = new Label(0, i + 1, "stuNo");
Label stuNameLabel = new Label(1, i + 1, "stuName");
Label stuminterLabel = new Label(2, i + 1, "stuminter");
Label stuAddrLable = new Label(3, i + 1, "stuAddr");
// Label stuTellLabel = new Label(4, i + 1, stutell);
// 如果用这个导出后会有数值和文本的区别
jxl.write.Number tellNumber = new jxl.write.Number(4, i + 1, Double.parseDouble("23"));
Label stusexLabel = new Label(5, i + 1, "stusex");
// Label classNoLabel = new Label(6, i + 1,stuClassno);
// 一下要注意了,必须要转成double类型的数据
jxl.write.Number classNoNumber = new jxl.write.Number(6, i + 1, Double.parseDouble("36"));
ws.addCell(stuNoLabel);
ws.addCell(stuNameLabel);
ws.addCell(stuminterLabel);
ws.addCell(stuAddrLable);
ws.addCell(tellNumber);
ws.addCell(stusexLabel);
ws.addCell(classNoNumber);
}
workbook.write();
workbook.close();
} catch (Exception e)
{
System.out.println(e.getCause());
System.out.println(e.getMessage());
}
}
/**
* 设置单元格样式
*
* @return
* @throws Exception
*/
public static WritableCellFormat getHeadFormat() throws Exception
{
// 设置字体
WritableFont wf = new WritableFont(WritableFont.ARIAL, 8, WritableFont.BOLD);
// 创建单元格FORMAT
WritableCellFormat wcf = new WritableCellFormat(wf);
wcf.setAlignment(Alignment.CENTRE);
wcf.setVerticalAlignment(VerticalAlignment.CENTRE);
wcf.setLocked(true);
wcf.setBorder(Border.ALL, BorderLineStyle.THIN, Colour.BLACK);
wcf.setBackground(Colour.GREY_25_PERCENT);
return wcf;
}
}
分享到:
相关推荐
Java使用JXL库进行Excel操作是Java开发中常见的任务,特别是在数据处理、报表生成和数据分析等领域。JXL是一个流行的开源库,它提供了丰富的API来读取、写入和修改Microsoft Excel文件。以下是对这个主题的详细说明...
JXL库是一个广泛使用的Java库,它允许开发者读取、写入和修改Excel文件。本篇将深入探讨如何使用JXL库在Java中打印Excel报表。 首先,要使用JXL库,你需要在项目中引入它的依赖。在本例中,`jxl.jar`是JXL库的核心...
Java 使用 JXL 进行Excel导入导出是一个常见的任务,特别是在数据处理和分析场景中。JXL 是一个 Java 库,允许开发者方便地读取、写入和操作 Excel 文件(.xls 格式)。以下是对这个主题的详细阐述: 1. **JXL 概述...
`jxl`库是一个广泛使用的第三方库,它允许开发者轻松地读取、写入和修改Excel文件。本篇文章将深入探讨如何利用`jxl.jar`包来实现这一功能。 首先,确保你已经正确地将`jxl.jar`文件添加到你的项目类路径中。这可以...
Java使用JXL库生成Excel文件是一项常见的任务,特别是在数据处理、报表生成或导出时。JXL是一个开源的Java库,允许我们...JXL提供了广泛的API来处理各种复杂的Excel操作,是Java环境下生成Excel文件的一个实用工具。
这个"Java jxl操作Excel97-2003 eclipse可运行项目实例"提供了一个实用的示例,帮助开发者了解如何在Eclipse环境中使用jxl库与Excel97-2003版本的文件进行交互。 1. **jxl库介绍** jxl库是Java编程语言中的一个...
### Java中jxl操作Excel详解 #### 一、jxl简介与优势 jxl是一个用于在Java中操作Microsoft Excel文件的开源库。虽然其功能相较于Apache POI可能略显简单,但在处理中文字符方面表现优异,且由于其纯Java实现,无需...
Java POI 和 JXL 是两种常用的 Java 库,用于处理 Microsoft Excel 文件。在这个入门级的实例中,我们将探讨如何使用这两个库来操作Excel文件。首先,我们先了解一下这两个库的基本概念。 1. **Java POI**: - ...
在Java编程环境中,处理Excel数据是一项常见的任务,而`jxl`库是一个广泛使用的开源库,专门用于读取和写入Microsoft Excel文件。本篇将详细介绍如何使用`jxl`库进行Excel的操作,包括导入、导出、读取以及更新Excel...
JXL 操作 EXCEL 的各个类的解析是 Java 语言中操作 Excel 文件的主要方法之一。JXL 通过提供了多种类来实现对 Excel 文件的读写操作。 首先,JXL 提供了一个抽象类 Workbook,该类相当于是一个工具类,用于生成 ...
`jxl`库是Java中一个广泛使用的库,它允许开发者方便地读取和写入Excel文件(.xls格式)。本篇将详细介绍如何利用`jxl`库来操作Excel文件,并结合实例说明如何从Excel文件中提取数据并生成TXT文件。 首先,我们需要...
自己封装的方法,调用 XlHelper.getXl(List<?> voList , Object head , OutputStream ops)方法,直接返回需要的excel,而不需要再去写jxl的方法。第一个参数voList 是excel里的内容,第二个参数head是excel表头。第...
以上就是使用JXL库进行Java读写Excel的基本操作。在实际应用中,你可能还需要处理更复杂的情况,比如读写公式、样式、图表等。JXL库提供了丰富的API来支持这些功能,可以根据需求进行深入学习和使用。 最后,如果你...
JXL是一个韩国人写的Java操作Excel的工具,在开源世界中,有两套比较有影响的API可供使用,一个是POI,一个是jExcelAPI。其中功能相对POI比较弱一点。但jExcelAPI对中文支持非常好,API是纯Java的,并不依赖Windows...
通过以上步骤,我们可以实现在Java程序中使用JXL和POI库给Excel文件添加动态水印的功能。这种技术不仅适用于企业内部的文档管理,还可以用于任何需要保护文档版权和安全性的场景。希望这篇教程能够帮助到有类似需求...
JXL库是一个广泛使用的开源库,它允许开发者读写Microsoft Excel格式的文件,包括.xls格式。本教程将深入讲解如何使用JXL库解析Excel中的固定模板,以智联招聘的简历模板为例进行说明。 首先,确保你的项目已经引入...
`jxl`库是一个流行的Java库,它允许开发者读取、写入和修改Excel文件。本教程将详细介绍如何使用`jxl`库在导出Excel时添加水印,以及涉及的核心类`WritableWorkbook`、`WritableSheet`和`WritableCellFormat`。 `...
本篇文章将深入探讨如何使用jxl.jar库来实现Java操作Excel。 首先,jxl是一个广泛使用的Java库,它允许开发者读写Microsoft Excel文件。它的主要优势在于简单易用且功能丰富,支持多种Excel格式,包括老版本的.BIFF...
Java中的JXL库是用于操作Microsoft Excel文件的一个...总的来说,JXL是一个轻量级、易于使用的Java库,对于简单或中等复杂的Excel文件操作,它是很好的选择。在实际项目中,应根据具体需求和性能要求来选择合适的库。
通过上述步骤,你就可以使用Java的JXL库创建具有各种特性的Excel文件了。在实际开发中,可以将这些功能封装成方法,以方便复用和维护。在给定的示例代码`JExcelTest`中,你应该能看到这些功能的具体实现,这将帮助你...