import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.util.HashMap;
import java.util.List;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.usermodel.WorkbookFactory;
public class ExcelUtil {
private FileOutputStream fos = null;
private FileInputStream fis = null;
private Workbook workbook = null;
private Sheet sheet = null;
private int rowIndex = 0;
private String[] header ={"Id","Name","Age","Date","Tel","Address"};
public ExcelUtil(){
}
public void InitExcel(String fileName){
try{
workbook = new HSSFWorkbook();
fos = new FileOutputStream(fileName);
sheet = workbook.createSheet("result");
Row headerRow = sheet.createRow(rowIndex);
rowIndex++;
for (short i=0; i<header.length; i++)
{
Cell cell = headerRow.createCell(i);
cell.setCellValue(header[i]);
}
} catch (Exception e){
e.printStackTrace();
}
}
public void WriteRows(HashMap hash){
try{
Row row = sheet.createRow(rowIndex);
rowIndex++;
Cell cell = null;
int index= 0;
cell = row.createCell(index++);
cell.setCellValue(hash.get("ID")+"");
cell = row.createCell(index++);
cell.setCellValue(hash.get("Name")+"");
cell = row.createCell(index++);
cell.setCellValue(hash.get("Age")+"");
cell = row.createCell(index++);
cell.setCellValue(hash.get("Date")+"");
cell.setCellType(Cell.CELL_TYPE_NUMERIC);
if (hash.get("Date")!=null)
cell.setCellValue(hash.get("Date")+"");
else
cell.setCellType(Cell.CELL_TYPE_BLANK);
cell = row.createCell(index++);
cell.setCellValue(hash.get("Tel")+"");
cell = row.createCell(index++);
cell.setCellValue(hash.get("Address")+"");
}catch(Exception e){
e.printStackTrace();
}
}
public void reader(String fileName){
try{
fis= new FileInputStream(fileName);
Workbook wb = WorkbookFactory.create(fis);
Sheet sheet = wb.getSheetAt(0);
int lastRowNum = sheet.getLastRowNum();
for (int i=1; i<lastRowNum; i++)
{
Row row = sheet.getRow(i);
int lastColNum = row.getLastCellNum();
Cell cell = row.getCell(0);
if (cell!=null )
{
if (cell.getCellType()== Cell.CELL_TYPE_STRING)
System.out.println(cell.getStringCellValue());
}
cell = row.getCell(1);
if (cell!=null)
{
if (cell.getCellType()==Cell.CELL_TYPE_NUMERIC)
System.out.println(cell.getDateCellValue());
}
cell = row.getCell(2);
if (cell!=null)
{
if (cell.getCellType()== Cell.CELL_TYPE_NUMERIC)
System.out.println(cell.getNumericCellValue());
}
}
}catch(Exception ee){
ee.printStackTrace();
}finally{
try{
fis.close();
}catch(Exception ee){
ee.printStackTrace();
}
fis=null;
}
}
public void finish() {
try{
workbook.write(fos);
}catch(Exception e){
e.printStackTrace();
}finally{
if (fos!=null){
try{
fos.close();
}catch(Exception ee){
ee.printStackTrace();
}
}
fos = null;
}
}
}
分享到:
相关推荐
Java读写Excel是一项常见的任务,尤其在数据处理和报表生成中。Xxl-Excel是一个流行的Java库,专门用于处理Excel文件,提供了简单易用的API,使得开发人员能够方便地进行Excel的读取和写入操作。在这个示例中,我们...
### Excel与XML相互转化的Java实现 #### 引言 随着信息技术的发展,数据处理与交换变得日益重要。Microsoft Excel作为一款广泛使用的数据处理工具,在办公自动化领域占据着举足轻重的地位。与此同时,XML...
- 字节流与字符流:InputStream和OutputStream处理字节数据,Reader和Writer处理字符数据。 - **缓冲流**:BufferedReader、BufferedWriter等,提高读写效率。 - **对象序列化**:将对象转换为字节流,便于存储或...
在Java编程中,CSV(Comma Separated Values)文件是一种常用的格式,用于存储表格数据,如电子表格或数据库。在处理CSV文件时,尤其是涉及中文字符时,可能会遇到乱码问题。这个问题通常与字符编码设置有关。下面...
- **字节流与字符流**:字节流处理原始二进制数据,字符流处理Unicode字符,包括InputStream/OutputStream和Reader/Writer类。 - **缓冲流**:BufferedInputStream、BufferedOutputStream、BufferedReader和...
2. `ExcelReaderUtil.java`、`Excel2003Reader.java`、`Excel2007Reader.java`:这些都是Java源代码文件,分别实现了Excel的读取功能,针对不同的Excel版本有不同的实现。 3. `poi-ooxml-schemas-3.8-beta4-20110826...
6. **Excel兼容**:尽管CSV通常不包含Excel的复杂格式,但`javacsv`库在处理Excel导出的CSV时表现出良好的兼容性,能够处理Excel特有的引用方式和行结束符。 7. **内存效率**:`javacsv`库在设计时考虑了内存效率,...
在JavaCSV库中,主要有两个核心类:`CSVReader`和`CSVWriter`。`CSVReader`用于读取CSV文件,而`CSVWriter`则用于将数据写入CSV文件。 1. CSVReader: `CSVReader`提供了多种方法来读取CSV文件。例如,你可以使用`...
这个教程就是关于如何使用Java调用Perl脚本来生成Excel文件,然后将生成的文件压缩为ZIP格式,同时解决可能出现的乱码问题。这里我们将深入探讨这两个关键步骤。 首先,让我们来看看Java调用Perl脚本的部分。在Java...
- `Reader` 和 `Writer`:字符流处理类,常用于处理文本文件。 这些工具类的使用通常需要结合具体业务需求,通过调用相应的方法完成特定任务。在实际开发中,了解并熟练掌握这些工具类的功能,将极大地提升代码...
Apache POI 是一个强大的 Java 库,用于读写 Microsoft Office 文件格式,特别是Excel。相比于早期的 Jxl,POI 提供了对更高版本的 Excel(如2007及以上)的支持,同时也带来了更全面的功能。然而,POI 的复杂性也是...
6. **IO流**:Java的IO流提供了读写数据的能力,分为字节流(如InputStream、OutputStream)和字符流(如Reader、Writer)。还有NIO(非阻塞I/O)提供更高效的流操作,包括BufferedReader、BufferedWriter、...
理解流的概念,熟练使用Reader、Writer、InputStream、OutputStream及其子类,对于处理数据和报表至关重要。 5. **多线程**:Java提供内置的多线程支持,通过Thread类和Runnable接口实现并发执行。理解和掌握同步和...
开发者可以使用Microsoft Excel REST API,或开源库如Apache POI(Java)、pandas(Python)或EPPlus(C#)进行数据提取和分析。 最后,Doc文件是早期版本的Word文档格式。它们可以通过Microsoft Word、OpenOffice ...
2. **IO流与文件操作**:报表通常需要从数据库或文件读取数据,因此熟悉Java的输入输出流(InputStream、OutputStream、Reader、Writer等)以及文件操作(File类)至关重要。这包括读写文件、复制文件、文件流的缓冲...
Java的IO流又分为输入流(InputStream/Reader)和输出流(OutputStream/Writer),分别用于数据的读取和写入。 在处理大型文件时,比如Excel或Word文档,直接一次性加载到内存可能会消耗大量资源,这时就需要用到流...
在Java中,I/O操作的核心类库包括基于字节操作的InputStream和OutputStream系列类,以及基于字符操作的Reader和Writer系列类。InputStream和OutputStream主要用于处理二进制数据,如图像、音频或压缩文件;而Reader...
Apache POI是一个强大的Java API,可以处理Microsoft Office格式的文件,包括Excel(.xls和.xlsx)。XlsxReaderWriter则专注于处理.xlsx文件,更适合现代Excel格式。 二、Apache POI的使用 1. 添加依赖:首先,在...
ExcelUtil 将这些代码段添加到您的pom.xml ... < id>jitpack.io < url>... ... ... < artifactId>excel-util < version>master ... 示例-Excel文件 示例-ModelEntity @ExcelEntity public cla
InputStream、OutputStream、Reader、Writer等类是其核心。 9. **多线程**:Java支持多线程编程,线程的创建、同步和通信是并发处理的关键,可以提高程序的效率。 10. **JDBC**:Java Database Connectivity是Java...