public static void main(String[] argv) {
// 读Excel文件内容
OperateExcel.readExcel("E:\\test1.xls");
// OperateExcel.createExcelFile("E:\\test1.xls");
// OperateExcel.updateExcel("E:\\test.xls");
// 拷贝Excel文件
// OperateExcel.copyExcel("D:\\Book1.xls", "E:\\moon.xls");
}
public static void readExcel(String excelFileName) {
Workbook rwb = null;
try {
InputStream stream = new FileInputStream(excelFileName);
rwb = Workbook.getWorkbook(stream);
Sheet sheet = rwb.getSheet(0);
Cell cell = null;
int columns = sheet.getColumns();
int rows = sheet.getRows();
for (int i = 0; i < rows; i++)
for (int j = 0; j < columns; j++) {
cell = sheet.getCell(j, i);
String str00 = cell.getContents();
System.out.println(str00);
}
stream.close();
} catch (IOException e) {
e.printStackTrace();
} catch (BiffException e) {
e.printStackTrace();
} finally {
rwb.close();
}
}
public static void createExcelFile(String excelFileName) {
try {
WritableWorkbook wwb = Workbook.createWorkbook(new File(
excelFileName));
WritableSheet ws = wwb.createSheet("sheet1", 0);
// also,The first parameter is column,the second parameter is row.
// add normal label data
Label label00 = new Label(0, 0, "Label00");
ws.addCell(label00);
// add font formating data
WritableFont wf = new WritableFont(WritableFont.TIMES, 18,
WritableFont.BOLD, true);
WritableCellFormat wff = new WritableCellFormat(wf);
Label label10 = new Label(1, 0, "Label10", wff);
ws.addCell(label10);
// add color font formating data
WritableFont wf_color = new WritableFont(WritableFont.ARIAL, 10,
WritableFont.NO_BOLD, false,
UnderlineStyle.DOUBLE_ACCOUNTING, Colour.RED);
WritableCellFormat wff_color = new WritableCellFormat(wf_color);
wff_color.setBackground(Colour.GRAY_25); // set background coloe to
// gray
Label label20 = new Label(2, 0, "Label20", wff_color);
ws.addCell(label20);
// 合并单元格
WritableFont wf_merge = new WritableFont(WritableFont.ARIAL, 10,
WritableFont.NO_BOLD, false,
UnderlineStyle.DOUBLE_ACCOUNTING, Colour.GREEN);
WritableCellFormat wff_merge = new WritableCellFormat(wf_merge);
wff_merge.setBackground(Colour.BLACK);
Label label30 = new Label(3, 0, "Label30", wff_merge);
ws.addCell(label30);
Label label40 = new Label(4, 0, "Label40");
ws.addCell(label40);
Label label50 = new Label(5, 0, "Label50");
ws.addCell(label50);
// 合并 (0,3) (4,0)
// attention : 如果合并后面的列不为空,那么就把后面格的内容清空,格式也是按前一个单元格的格式
ws.mergeCells(3, 0, 4, 0);
// 添加Number格式数据
jxl.write.Number labelN = new jxl.write.Number(0, 1, 3.1415926);
ws.addCell(labelN);
// 添加带有formatting的Number对象
jxl.write.NumberFormat nf = new jxl.write.NumberFormat("#.##");
jxl.write.WritableCellFormat wcfN = new jxl.write.WritableCellFormat(
nf);
jxl.write.Number labelNF = new jxl.write.Number(1, 1, 3.1415926,
wcfN);
ws.addCell(labelNF);
// 添加Boolean对象
jxl.write.Boolean labelBoolean = new jxl.write.Boolean(2, 1, false);
ws.addCell(labelBoolean);
// 添加DateTime对象
DateTime labelDT = new DateTime(3, 1, new Date());
ws.addCell(labelDT);
// 添加带有格式的DataTime数据
DateFormat dtf = new DateFormat("yyyy-MM-dd hh:mm:ss");
WritableCellFormat wcfDt = new WritableCellFormat(dtf);
wcfDt.setBackground(Colour.YELLOW);
DateTime labelDT_format = new DateTime(4, 1, new java.util.Date(),
wcfDt);
ws.addCell(labelDT_format);
ws.mergeCells(4, 1, 5, 1); // 比较长,用两列来显示
wwb.write();
wwb.close();
} catch (IOException e) {
e.printStackTrace();
} catch (WriteException e) {
e.printStackTrace();
}
}
public static void updateExcel(String fileName) {
try {
jxl.Workbook rw = jxl.Workbook.getWorkbook(new File(fileName));
WritableWorkbook wwb = Workbook.createWorkbook(new File(fileName),
rw);
// 这里其实执行的是一次copy操作,把文件先读到内存中,修改后再保存覆盖原来的文件来实现update操作
WritableSheet ws = wwb.getSheet(0);
WritableCell wc = ws.getWritableCell(0, 0);
if (wc.getType() == CellType.LABEL) {
Label l = (Label) wc;
l.setString(wc.getContents() + "_new");
}
wwb.write();
wwb.close();
} catch (IOException e) {
e.printStackTrace();
} catch (WriteException e) {
e.printStackTrace();
} catch (BiffException e) {
e.printStackTrace();
}
}
public static void copyExcel(String sourFileName, String destFileName) {
try {
jxl.Workbook rw = jxl.Workbook.getWorkbook(new File(sourFileName));
WritableWorkbook wwb = Workbook.createWorkbook(new File(
destFileName), rw);
wwb.write();
wwb.close();
} catch (IOException e) {
e.printStackTrace();
} catch (WriteException e) {
e.printStackTrace();
} catch (BiffException e) {
e.printStackTrace();
}
}
分享到:
相关推荐
本主题主要关注如何使用Java来读取和写入Excel文件,特别是通过标题"JAVA-write-EXCEL.rar_copy excel java_java write_java读取_java读取Excel"所暗示的知识点。我们将探讨两个主要的API库:Apache POI和JExcelAPI...
今天,我们将介绍如何使用Java实现复制Excel工作表功能,包括在同一个工作簿内复制工作表和在不同工作簿间复制工作表两种情况。 复制工作表 在实际应用中,我们经常需要复制工作表以便更好地组织和管理数据。使用...
本文将详细介绍如何使用Java语言来处理Excel文件,包括从Excel文件读取数据表、生成新的Excel工作簿以及拷贝、更新Excel工作簿等操作。 #### 一、从Excel文件读取数据表 ##### 1.1 使用JavaExcelAPI读取Excel数据...
总结起来,通过Apache POI,Java开发者可以方便地对Excel文件进行各种操作,包括复制Sheet页。在这个例子中,我们展示了如何跨文件复制Sheet页,不仅复制了数据,还保留了样式和格式,这对于数据处理和报告生成等...
Apache POI 是一个流行的开源库,它允许开发者使用Java语言来读取、写入和修改Microsoft Office格式的文件,包括Excel(.xlsx 和 .xls)。本教程将深入探讨如何使用Apache POI库来复制Excel表格的指定行数及其样式。...
提供的源码应该包含了一个简单的示例,展示如何在Java Web应用中接收并读取Excel文件,以及如何处理和显示数据。这个示例通常会包括Servlet的实现、HTML表单以及必要的POI操作代码。 9. **详细解释**: 源码注释...
Java的Apache POI库是一个强大的工具,用于读取、创建和修改Microsoft Office格式的文件,尤其是Excel工作簿。本文将深入探讨使用POI操作Excel文件时的一些关键知识点和常见问题。 1. **设置分页符的bug** 在处理...
本文将深入探讨如何利用`jxl`库进行Excel表格的操作,包括读取表格、拷贝工作簿、更新工作簿以及将多个Sheet合并到一个Excel文件中。 首先,让我们了解`jxl`库的基本概念。`jxl`库提供了一系列的类和接口,如`...
反向操作,从Excel导入到`JTable`,则需读取Excel文件,创建`HSSFWorkbook`对象,遍历工作表中的每个单元格,获取数据,然后填充到`TableModel`中。 在实际应用中,可能还需要处理一些细节,比如数据格式的转换、...
总之,Java中处理Excel文件是一项广泛使用的技能,涉及到的内容丰富多样,包括但不限于文件读写、数据转换、格式设定等。通过熟练掌握Apache POI等工具,我们可以高效地实现Excel的导入与导出功能。
Java的Apache POI库是一个强大的工具,用于读取、创建和修改Microsoft Office格式的文件,尤其是Excel工作簿。本文将深入探讨在使用POI进行Excel操作时遇到的一些常见问题及解决方案,特别是关于设置分页符的bug和...
这可能包括避免不必要的内存拷贝,合理使用缓冲区,以及在生成XML时尽可能减少DOM操作。此外,如果转换过程涉及复杂逻辑,可以考虑使用多线程或异步处理来加速。 5. 错误处理与测试: 转换过程中可能会遇到各种...
在Excel处理方面,POI提供了一套API,允许程序员在Java环境中创建、修改和读取Excel文件。本篇文章将详细介绍如何使用Apache POI库来实现Excel的Sheet页复制以及根据空行拆分单元格。 一、Sheet页复制 在Excel中,...
在Excel文件处理的上下文中,算法可能包括打开文件、解析数据结构、读取单元格值、修改数据、以及保存更改等一系列操作。 BasicExcel.cpp和BasicExcel.h这两个文件很可能是实现这个算法的源代码和头文件。在C++中,...
总之,"ExcelHelper(Excel导入导出)实例源码.zip"中的内容涵盖了使用Apache POI库进行Excel数据处理的核心技术,包括文件读写、数据模型操作、自定义字段映射以及异常处理等方面。通过学习和理解这些源码,开发者...
1. Excel读取: EasyExcel提供了`read`方法来读取Excel文件。通过定义一个实体类(对应Excel的表头)和一个监听器,可以轻松获取到Excel中的数据并转换为Java对象。监听器中的`invoke`方法会在读取每一行数据时被...
总结一下,JavaExcelAPI例子展示了如何利用JXL库在Java中高效地处理Excel文件,包括读取、写入和复制数据,这对于开发需要与Excel交互的Java应用程序,尤其是数据处理和报表生成任务,提供了强大的工具。通过深入...