- 浏览: 48226 次
- 性别:
- 来自: 大连
最近访客 更多访客>>
最新评论
-
wildeurope:
楼主代码 看起来很乱 不过还是有实用性的 借鉴下
java导出Excel 玩玩吧! -
evanz:
这个只能打word中的文字吧,图片应该是不能打得
java打印word的分享 -
xin163:
不是一般人谁能看懂?
java导出Excel 玩玩吧! -
lerous:
包提供的还不错````至于代码`?````
java导出Excel 玩玩吧! -
jiyuchonger:
很垃圾。。。
java导出Excel 玩玩吧!
java 代码
- import org.apache.log4j.*;
- import org.apache.poi.hssf.usermodel.*;
- import org.apache.poi.poifs.filesystem.POIFSFileSystem;
- import java.util.*;
- import java.io.*;
- /**
- *
- * <p>Title: POIBean.java</p>
- *
- * <p>Description: 该类用于操作excel文件,从文件中读取数据。</p>
- * @version 1.0
- */
- public class POIUtil
- {
- //定义日志记录器
- private static final Logger log = Logger.getLogger(POIUtil.class);
- private static POIUtil poiUtil = null;
- //单例
- POIUtil()
- {
- }
- public static POIUtil getInstance()
- {
- if (poiUtil == null)
- {
- poiUtil = new POIUtil();
- }
- return poiUtil;
- }
- /*******读取xls表格中的数据********
- * @param filePath : 文件完整路径名
- * @param worksheet: 读取的工作表,0为第一张工作表
- * @param start : 开始读的行数
- * @param length : 读取的列数长度,从第一列开始
- * @param link : 连接各个单元格的值
- * @param maxRows : 读取的最多行数
- * @throws IOException
- */
- public ArrayList readData(String filePath, int worksheet, int start,
- int length, String link, final int maxRows) throws IOException
- {
- try
- {
- File file = new File(filePath);
- if (!file.exists())
- {
- log.error("read file failed : " + filePath + " is not exist !");
- return null;
- }
- }
- catch (Exception e)
- {
- log.error(e.toString());
- return null;
- }
- ArrayList arrayList = new ArrayList();
- FileInputStream fis = null;
- try
- {
- fis = new FileInputStream(filePath);
- POIFSFileSystem fs = new POIFSFileSystem(fis);
- HSSFWorkbook wb = new HSSFWorkbook(fs);
- HSSFSheet sheet = wb.getSheetAt(worksheet);
- //不存在worksheet
- if (sheet == null)
- {
- log.error("can not get the specified sheet at " + worksheet);
- return null;
- }
- //所有的行数
- int times = 0;
- for (int i = start; i <= sheet.getLastRowNum(); i++)
- {
- //用于单元格内容为空时,确定其坐标
- String division = "";
- //整行数据都不为空时,存储这一行的数据
- StringBuffer rowValue = new StringBuffer("");
- times++;
- //超过读的行数
- if (times > maxRows)
- {
- break;
- }
- HSSFRow row = sheet.getRow(i);
- //行值不为空
- if (row != null)
- {
- //所有的列数
- for (int j = 0; j < length; j++)
- {
- HSSFCell cell = row.getCell((short) j);
- if (cell == null)
- {
- division = "@" + (i + 1) + ":" + (j + 1);
- rowValue.append(division);
- rowValue.append(link);
- log.debug("cell " + (i + 1) + ":" + (j + 1) +
- "is null");
- continue;
- }
- switch (cell.getCellType())
- {
- //单元格内容是数字
- case HSSFCell.CELL_TYPE_NUMERIC:
- rowValue.append(new Double(cell.
- getNumericCellValue()).intValue());
- rowValue.append("@" + (i + 1) + ":" + (j + 1));
- rowValue.append(link);
- break;
- //单元格内容是字符串
- case HSSFCell.CELL_TYPE_STRING:
- rowValue.append(cell.getStringCellValue());
- rowValue.append("@" + (i + 1) + ":" + (j + 1));
- rowValue.append(link);
- break;
- default:
- division = "@" + (i + 1) + ":" + (j + 1);
- rowValue.append(division);
- rowValue.append(link);
- }
- }
- arrayList.add(rowValue.toString());
- }
- //行值为空,登记位置
- else
- {
- log.debug("row " + (i + 1) + "is null");
- }
- }
- }
- catch (IOException e)
- {
- log.error(e.toString());
- throw new IOException("IO Exception was found");
- }
- finally
- {
- // 关闭流
- if (fis != null)
- {
- fis.close();
- }
- }
- return arrayList;
- }
- /**
- * 对Excel文件进行判断
- * @param File file Excel文件
- * @param sheetNames Sheet的名字
- * @return boolean 是否是真文件 true 真 false 加
- */
- public boolean isFile(File file, String[] sheetNames) throws Exception
- {
- //记录日志
- log.debug("enter getCounts()");
- //参数判断
- if (file == null || !file.exists() || sheetNames == null || sheetNames.length == 0)
- {
- log.error("param is not valid");
- throw new IllegalArgumentException("param is not valid");
- }
- //定义流变量
- POIFSFileSystem fs = null;
- FileInputStream fis = null;
- HSSFWorkbook hssfWorkBook = null;
- boolean isValid = false;
- //默认的sheet个数为0
- int counts = 0;
- try
- {
- //读入文件
- fis = new FileInputStream(file);
- fs = new POIFSFileSystem(fis);
- hssfWorkBook = new HSSFWorkbook(fs);
- counts = hssfWorkBook.getNumberOfSheets();
- //对Sheet的个数进行判断
- if (counts != sheetNames.length)
- {
- return isValid;
- }
- String tempSheetName = null;
- //再判断sheet名
- for (int i = 0; i < counts; i++)
- {
- tempSheetName = hssfWorkBook.getSheetName(i);
- if (!tempSheetName.equals(sheetNames[i].trim()))
- {
- return isValid;
- }
- }
- isValid = true;
- }
- catch(IOException ioe)
- {
- log.error(ioe.toString());
- return isValid;
- }
- catch(Exception e)
- {
- log.error(e.toString());
- throw new Exception();
- }
- finally
- {
- try
- {
- fis.close();
- }
- catch(Exception e)
- {
- log.error(e.toString());
- return isValid;
- }
- }
- return isValid;
- }
- //测试
- public static void main(String[] args)
- {
- POIUtil poiUtil = new POIUtil();
- ArrayList list = null;
- try
- {
- list=poiUtil.readData("D:\\task模板.xls",0,0,2,"@@@",3);
- }
- catch(IOException ioe)
- {
- }
- if (list == null)
- {
- System.out.println("======================");
- }
- else
- {
- String temp = null;
- String[] str = new String[2];
- String[] tempStr = new String[2];
- for (int i = 0; i < list.size(); i++)
- {
- temp = (String)list.get(i);
- System.out.println("========row" + temp);
- str = temp.split("@@@");
- for (int j = 0; j < str.length; j++)
- {
- tempStr = str[j].split("@");
- System.out.println(tempStr.length);
- System.out.println(tempStr[0]);
- System.out.println(tempStr[1]);
- }
- }
- }
- }
- }
发表评论
-
常用的文件操作方法
2007-12-08 15:22 1446java 代码 import ja ... -
对xml文档操作的常用方法
2007-12-08 15:19 1472java 代码 import ja ... -
Subversion之路---实现精细的目录访问权限控制(转载)
2007-11-02 09:34 19511.1 Subversion 权限简介在 ... -
freemarker+velocity+jsf+spring+hibernate 初探一
2007-09-20 19:21 2601喜欢架构方面的东西,在一年多以前就开始接触freem ... -
java导出Excel 玩玩吧!
2007-09-08 13:17 10519java 代码 /* * Gene ... -
java打印word的分享
2007-09-08 13:09 4258大有有兴趣,下来玩玩吧! 有心得多分享哦! -
少走弯路的十条忠告
2007-09-08 12:52 822如何在涉世之初少走弯路,有一个好的开端,开始一番成功的事业? ... -
OutJavaScript
2007-09-03 20:43 1220java 代码 package com.axon ... -
程序中调用批处理执行Mysql数据库导入导出
2007-09-03 20:39 1929/** * @param cmdStr ... -
hibernate配置
2007-09-03 20:35 811"-//Hibernate/ ... -
struts+hibernate+spring+FreeMarker 2
2007-09-01 21:03 1537自动生成几个文件: 并且,spring的applic ... -
struts+hibernate+spring+FreeMarker
2007-09-01 21:00 919这几天把hibernate和spring好好看了下,再想想st ...
相关推荐
C# 读取加密的Excel 文件... 开始研究NPOI读取加密的Excel文件,没有研究出来,后来才改用Microsoft.Office.Interop.Excel读取加密的Excle文件。若有那位大牛研究出NPOI读取加密的Excel文件,希望能共享出源码来。 谢谢
在网页中实现HTML静态读取Excel文件,通常需要借助JavaScript库和一些前端技术。这个过程涉及到几个关键知识点:文件API、Ajax、数据转换以及可能的跨域问题。下面将详细阐述这些内容。 首先,HTML5引入了File API...
2. **修改Excel文件**:在读取数据后,我们可以通过QtXlsx修改这些数据。这包括设置单元格的值、格式、样式,以及插入、删除行列等。例如,`setCellValue()`用于设置单元格的文本或数值,`setCellStyle()`可以改变...
在Qt Creator中,可以设置断点,使用调试器检查代码执行过程中的变量状态,确保Excel文件被正确读取。 10. **代码优化**: 根据实际需求,可能需要优化读取速度,如批量读取、异步读取等。此外,考虑到性能和内存...
在VB6(Visual Basic 6)中,读取Excel文件是一...结合这两个部分,你可以在VB6中读取Excel文件,并将数据写入SQL数据库,或者从SQL数据库中读取数据并显示在Excel中。这些基本操作可以作为更复杂数据处理任务的基础。
在C++中,读取Excel数据通常涉及到使用OLE Automation(对象链接和嵌入自动化)技术,这是一种允许不同应用程序之间交互的方式...这种技术使得C++程序能够灵活地读取、写入和修改Excel文件,实现数据的导入和导出功能。
在Android应用开发中,有时需要处理大量的结构化数据,这时Excel文件就成为一个理想的存储选择,因为它们便于人类阅读,同时也方便程序进行数据处理。本文将详细介绍如何在Android中实现Excel文件的读取与写入。 ...
1、java解析读取excel文件中的数据,并写入数据库。 2、java读取数据库数据,并导出为excel文件。 3、README.md中有详细的操作步骤示例。 使用说明: 1. 先使用postman导入:other/excel相关.postman_collection....
读取环境为Win10+VS2015,个人参考资料封装的excel读取模块用来读取Excel2007中的数据,文件为压缩文件,亲测可用。
在VB.NET编程中,读取Excel文件是常见的任务,尤其在数据处理和分析场景中。以下将详细讲解如何使用VB.NET来实现这一功能,并提供一些关键知识点。 首先,要读取Excel文件,我们需要一个能够与Excel文件交互的库。...
本篇文章介绍了一个方法,该方法能够读取Excel文件并将其中的数据存储到Java中的`Map`集合里,便于后续进行数据分析或处理。 #### 方法概述 方法签名如下: ```java public Map, Map, String>> importReportExcel...
另外,如果你的项目允许引入Python作为后端处理,那么可以使用pandas库,它提供了强大的数据处理能力,与QT结合可以实现快速读取和操作Excel文件。Python的pandas库有read_excel函数,可以方便地读取Excel文件到...
在Python编程中,有时我们需要处理大量数据,例如从Excel文件中读取数据并将其转换成其他格式,如JSON。在给定的示例中,它演示了如何使用Python3读取多个Excel文件并将数据写入一个JSON文件。下面将详细解释这个...
Java 读取 Excel 文件是指使用 Java 语言从 Excel 文件中读取数据,并对其进行处理的过程。下面将详细介绍 Java 读取 Excel 文件的过程和相关知识点。 Java 读取 Excel 文件的步骤 1. 导入所需的包:在 Java 项目...
python读取excel数据:Python读取Excel文件Python读取Excel文件Python读取Excel文件Python读取Excel文件Python读取Excel文件Python读取Excel文件Python读取Excel文件Python读取Excel文件Python读取Excel文件Python...
在本场景中,我们关注的重点是如何在读取Excel文件数据并将其导入到dataGridView时,同时展示一个进度条(progressbar)和当前正在读取的条目信息。这将提升用户体验,让用户了解后台操作的状态。 首先,我们需要...
本案例采用的poi读取大数据的excel文件 usermodel模式对excel操作前需要将文件全部转入内存,对较大文件来说内存开销很大。但是其使用简单。 eventusermodel模式采用事件模型,对文件边读取边处理,内存消耗较低,...
### TIA博途WinCC通过VB脚本从Excel中读取数据的具体方法 ...通过遵循这些步骤,可以实现自动化地从Excel文件读取数据,并在HMI界面上显示这些数据。这对于那些需要定期更新或监控数据的应用场景来说非常有用。
标题中的“直接读取Excel文件数据”指的是在Visual C++(简称VC)环境下,通过编程方式访问并解析Excel文件中的内容。通常,这涉及到使用Microsoft Office的自动化接口,如Microsoft Excel Object Library,或者使用...
3. **读取数据**:使用Excel Analysis Toolkit中的VI,如“Read Range”或“Read Cell”,来获取指定单元格或范围的值。你可以通过行列坐标或范围名称来指定要读取的部分。 4. **处理数据**:读取的数据会被转化为...