`
limafa
  • 浏览: 16747 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

java中读取Excel文件

阅读更多
一、需要用的档案:jakarta-poi-1.8.0-dev-20020917.jar
 几乎每天都有1.8.0的最新版(但非正式版),正式的版本是1.5.0
 http://jakarta.apache.org/builds/jakarta-poi/nightly/
 将档案复制到classpath所指到的地方

二、有兴趣的朋友可以参考
  http://jakarta.apache.org/poi/

三、先建立一个叫做book1.xls的Excel档,内容如下
----------------------------------
项目  单价  数量   合计
CPU   7000  5    35000
硬碟  2500  2    5000
记忆体 1600  3    4800
----------------------------------
其中合计的栏位是设定公式,单价*数量



四、资料读取範例
<%@ page contentType="text/html;charset=MS950" import="java.util.*,java.io.*" %>
<%@ page import="org.apache.poi.poifs.filesystem.*,org.apache.poi.hssf.usermodel.*" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=MS950">
<title>读取Excel档案</title>
</head>
<body>
<table border="1" width="100%">
<%
FileInputStream finput = new FileInputStream(application.getRealPath("/")+"book1.xls" );
//设定FileINputStream读取Excel档
POIFSFileSystem fs = new POIFSFileSystem( finput );
HSSFWorkbook wb = new HSSFWorkbook(fs);
HSSFSheet sheet = wb.getSheetAt(0);
//读取第一个工作表,宣告其为sheet
finput.close();
HSSFRow row=null;
//宣告一列
HSSFCell cell=null;
//宣告一个储存格
short i=0;
short y=0;

//以巢状迴圈读取所有储存格资料
for (i=0;i<=sheet.getLastRowNum();i++)
{
out.println("<tr>");
row=sheet.getRow(i);
for (y=0;y<row.getLastCellNum();y++)
{
cell=row.getCell(y);
out.print("<td>");

//判断储存格的格式
switch ( cell.getCellType() )
{
case HSSFCell.CELL_TYPE_NUMERIC:
out.print(cell.getNumericCellValue());
//getNumericCellValue()会回传double值,若不希望出现小数点,请自行转型为int
break;
case HSSFCell.CELL_TYPE_STRING:
out.print( cell.getStringCellValue());
break;
case HSSFCell.CELL_TYPE_FORMULA:
out.print(cell.getNumericCellValue());
//读出公式储存格计算後的值
//若要读出公式内容,可用cell.getCellFormula()
break;
default:
out.print( "不明的格式");
break;
}
out.println("</td>");
}
out.println("</tr>");
}
%>
</table>
</body>
</html>



五、资料新增範例
<%@ page contentType="text/html;charset=MS950" import="java.util.*,java.io.*" %>
<%@ page import="org.apache.poi.poifs.filesystem.*,org.apache.poi.hssf.usermodel.*" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=MS950">
<title>插入资料至Excel档案</title>
</head>
<body>
<%
FileInputStream finput = new FileInputStream(application.getRealPath("/")+"book1.xls" );
//设定FileINputStream读取Excel档
POIFSFileSystem fs = new POIFSFileSystem( finput );
HSSFWorkbook wb = new HSSFWorkbook(fs);
HSSFSheet sheet = wb.getSheetAt(0);
//读取第一个工作表,宣告其为sheet
finput.close();
HSSFRow row=null;
//宣告一列
HSSFCell cell=null;
//宣告一个储存格
short i=4;
row=sheet.createRow(i);
//建立一个新的列,注意是第五列(列及储存格都是从0起算)
cell=row.createCell((short)0);
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
//设定这个储存格的字串要储存双位元
cell.setCellValue("显示卡");
cell=row.createCell((short)1);
cell.setCellValue(1700);
cell=row.createCell((short)2);
cell.setCellValue(8);
cell=row.createCell((short)3);
//设定这个储存格为公式储存格,并输入公式
cell.setCellFormula("B"+(i+1)+"*C"+(i+1));
try
{
FileOutputStream fout=new FileOutputStream(application.getRealPath("/")+"book1.xls");
wb.write(fout);
//储存
fout.close();
out.println("储存成功<a href='book1.xls'>book1.xls</a>");
}
catch(IOException e)
{
out.println("产生错误,错误讯息:"+e.toString());
}
%>
</body>
</html>



六、资料删除、修改範例
<%@ page contentType="text/html;charset=MS950" import="java.util.*,java.io.*" %>
<%@ page import="org.apache.poi.poifs.filesystem.*,org.apache.poi.hssf.usermodel.*" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=MS950">
<title>删除、修改资料至Excel档案</title>
</head>
<body>
<%
FileInputStream finput = new FileInputStream(application.getRealPath("/")+"book1.xls" );
//设定FileINputStream读取Excel档
POIFSFileSystem fs = new POIFSFileSystem( finput );
HSSFWorkbook wb = new HSSFWorkbook(fs);
HSSFSheet sheet = wb.getSheetAt(0);
//读取第一个工作表,宣告其为sheet
finput.close();
HSSFRow row=null;
//宣告一列
HSSFCell cell=null;
//宣告一个储存格
row=sheet.getRow((short)4);
//取出第五列
if (row!=null)
sheet.removeRow(row);
//先侦测第五列存不存在,若在的话将第五列删除
row=sheet.getRow((short)3);
//取出第四列
cell=row.getCell((short)2);
//取出第三个储存格
cell.setCellValue(7);
//设定该储存格值为7
cell=row.getCell((short)3);
cell.setCellFormula(cell.getCellFormula());
//上两行为取出公式储存格,并重新计算(因为刚才更新过计算公式的值)
//如果不做,公式计算後的值不会更新
try
{
FileOutputStream fout=new FileOutputStream(application.getRealPath("/")+"book1.xls");
wb.write(fout);
//储存
fout.close();
out.println("储存成功<a href='book1.xls'>book1.xls</a>");
}
catch(IOException e)
{
out.println("产生错误,错误讯息:"+e.toString());
}
%>
</body>
</html>
分享到:
评论

相关推荐

    在Java中读写Excel文件.docx

    在Java中读写Excel文件是一项常见的任务,尤其是在数据处理和报表生成的场景中。Apache Jakarta POI项目为Java开发者提供了一套强大的工具,允许他们直接操作Microsoft Office格式的文件,包括Excel。POI库分为多个...

    java读取excel文件

    ### Java读取Excel文件知识点详解 #### 一、引言 在日常开发工作中,经常需要处理Excel文件。Java作为一种广泛使用的编程语言,提供了多种库来读取Excel文件,其中较为常用的有Apache POI和JExcelApi等。本文将详细...

    Excel文件读写java代码

    综上所述,这个压缩包提供了一个实用的Java Excel操作示例,对于理解如何在Java中读写Excel文件,以及如何在项目中集成这类功能具有很高的参考价值。通过学习和实践这些代码,开发者可以更好地处理Excel相关的业务...

    poi.zip java读取excel文件

    3. **获取 Sheet 对象**:通过工作簿对象的 `getSheet()` 方法获取工作表,工作表代表 Excel 文件中的一页。 4. **遍历 Row 和 Cell**:通过工作表对象的 `iterator()` 获取所有行,再遍历每一行的 `Cell`,读取...

    java中读取Excel例子

    同时,可能还有一个`readFromExcel(String filePath)`方法,用于从指定的Excel文件中读取数据并返回。 在实际应用中,我们还需要考虑异常处理、文件操作的权限、数据格式转换等问题。例如,读取日期单元格时,需要...

    在Java中读写Excel文件.pdf

    在Java中操作Excel文件,Apache Jakarta的POI项目是一个强大的工具,...通过上述知识,开发者可以使用Java和Apache POI库高效地读写Excel文件,实现数据的导入导出、报表生成等任务,而不依赖于Microsoft Office软件。

    java解析Excel文件并把数据存入数据库和导出数据为excel文件SpringBoot代码示例

    1、java解析读取excel文件中的数据,并写入数据库。 2、java读取数据库数据,并导出为excel文件。 3、README.md中有详细的操作步骤示例。 使用说明: 1. 先使用postman导入:other/excel相关.postman_collection....

    java 读取Excel文件中的内容

    以下是一个基础的步骤和示例代码,演示如何使用Apache POI读取Excel文件中的内容: 1. **引入Apache POI库**:首先,你需要在项目中引入Apache POI的依赖。如果你使用Maven,可以在pom.xml文件中添加以下依赖: ``...

    java读写excel文件

    在Java编程中,读写Excel文件是一项常见的任务,特别是在数据处理、数据分析或报表生成的场景下。本篇文章将深入探讨如何使用Java进行Excel文件的读取与写入操作,主要聚焦于Apache POI库,这是一个广泛使用的开源...

    java读取excel文件生成矩阵

    在Java编程中,读取...以上就是使用Java读取Excel文件生成矩阵的基本步骤。实际开发中,你可能还需要处理更多细节,如异常处理、数据验证、优化性能等。希望这个介绍能帮助你理解这个过程,并在实际项目中灵活应用。

    java如何读取excel文件

    在Java编程中,读取Excel文件是一项常见的任务,特别是在数据处理和分析的场景下。Excel文件通常用于存储结构化的表格数据,而Java提供了一些库来方便我们操作这些文件。本篇将详细介绍如何在Java中读取Excel文件,...

    java POI读取excel文件数据

    在这个场景中,我们将详细探讨如何使用Java POI读取Excel文件中的数据,包括获取总行数、列数、单元格内容、合并单元格、行高、列宽以及图片等信息。 首先,确保在项目中已经引入了Apache POI的依赖库。如果你使用...

    完美解决java读取excel内存溢出问题.rar

    在Java开发中,处理大型Excel文件时,可能会遇到内存溢出的问题。这通常是由于Java的默认内存设置不足以处理大量数据导致的。本解决方案主要针对使用Apache POI库进行Excel读取时遇到的这类问题。 首先,Apache POI...

    java读取excel之xlsl超大文件

    在Java编程中,处理Excel文件是一项常见的任务,特别是在数据分析、报表生成或数据导入导出等场景下。然而,当处理的Excel文件特别是XLSL格式的文件数据量巨大时,传统的API,如Apache POI或者JExcelAPI,可能会遇到...

    Java读取Excel文件的内容

    总结来说,使用Java和Apache POI框架读取Excel文件的内容主要包括以下几个步骤: 1. 引入Apache POI依赖。 2. 创建`FileInputStream`,加载Excel文件到`Workbook`对象。 3. 从`Workbook`中获取`Sheet`对象。 4. 遍历...

    java读取excel及导出excel文件

    在Java编程环境中,处理Excel文件是一项常见的任务,无论是读取数据进行分析,还是导出报表供用户下载。这里,我们将详细探讨如何使用Java来读取和导出Excel文件,主要涉及的技术包括Apache POI库和其他相关API的...

    非常简洁的java读写EXCEL源代码

    这个库使得在Java中读写Excel文件变得相当直观和高效。标题“非常简洁的java读写EXCEL源代码”以及描述中提到的“非常简单,还赠送个JXL的包”都暗示了我们将讨论如何使用JXL库进行Excel操作。 首先,让我们来了解...

Global site tag (gtag.js) - Google Analytics