- 浏览: 3011785 次
- 性别:
- 来自: 河南
文章分类
- 全部博客 (340)
- Java综合 (26)
- 程序人生 (53)
- RIA-ExtJS专栏 (18)
- RIA-mxGraph专栏 (4)
- RIA-Flex4专栏 (43)
- 框架-Spring专栏 (16)
- 框架-持久化专栏 (22)
- 框架-Struts2专栏 (11)
- 框架-Struts专栏 (12)
- SQL/NOSQL (12)
- 报表/图表 (2)
- 工作流 (5)
- XML专栏 (4)
- 日常报错解决方案 (5)
- Web前端-综合 (12)
- Web/JSP (14)
- Web前端-ajax专栏 (14)
- Web前端-JQuery专栏 (9)
- IDE技巧 (6)
- FILE/IO (14)
- 远程服务调用 (2)
- SSO单点登录 (2)
- 资源分享 (22)
- 云计算 (1)
- 项目管理 (3)
- php专栏 (1)
- Python专栏 (2)
- Linux (1)
- 缓存系统 (1)
- 队列服务器 (1)
- 网络编程 (0)
- Node.js (1)
最新评论
-
hui1989106a:
我的也不能解压,360和好压都试了,都不行
《Spring in Action》完整中文版分享下载 -
temotemo:
这些example有些过时了,官方建议使用HBase-1.0 ...
Java操作Hbase进行建表、删表以及对数据进行增删改查,条件查询 -
zy8102:
非常感谢~
HeadFirst系列之七:《深入浅出SQL》原版高清PDF电子书分享下载 -
zy8102:
重命名了一下搞定了
HeadFirst系列之七:《深入浅出SQL》原版高清PDF电子书分享下载 -
zy8102:
为什么下载以后老解压不了呢?
HeadFirst系列之七:《深入浅出SQL》原版高清PDF电子书分享下载
有博友发信说要Excel转txt不成,这是因为没有准确的设置,读取Excel的方式可以很多,但要实现转txt就得精确设置,按行读取,贴下代码如下
public class ExcelReader {
private static File [] getFiles(String path){
File file = new File(path);
// get the folder list
File[] array = file.listFiles();
return array;
}
public static void main(String[] args) throws IOException {
// TODO code application logic here
File[] files=getFiles("D:\\data\\");
for(int i=0;i<files.length;i++){
String filePath=files[i].getPath();
String fileName=files[i].getName();
String newFileName=fileName.substring(0, fileName.indexOf('.'));
String s="";
try{
ExcelReader er=new ExcelReader(filePath);
String line=er.readLine();
while(line != null){
s=s+line+"\r\n";
line=er.readLine();
}
er.close();
}catch(Exception e){
e.printStackTrace();
}
//System.out.println(s);
File newFile=new File("D:\\backupfile\\"+newFileName+".txt");
FileOutputStream fops=new FileOutputStream(newFile);
fops.write(s.getBytes());
}
}
// 创建文件输入流
private BufferedReader reader = null;
// 文件类型
private String filetype;
// 文件二进制输入流
private InputStream is = null;
// 当前的Sheet
private int currSheet;
// 当前位置
private int currPosition;
// Sheet数量
private int numOfSheets;
// HSSFWorkbook
HSSFWorkbook workbook = null;
// 设置Cell之间以空格分割
private static String EXCEL_LINE_DELIMITER = " ";
// 设置最大列数
private static int MAX_EXCEL_COLUMNS = 64;
// 构造函数创建一个ExcelReader
public ExcelReader(String inputfile) throws IOException, Exception {
// 判断参数是否为空或没有意义
if (inputfile == null || inputfile.trim().equals("")) {
throw new IOException("no input file specified");
}
// 取得文件名的后缀名赋值给filetype
this.filetype = inputfile.substring(inputfile.lastIndexOf(".") + 1);
// 设置开始行为0
currPosition = 0;
// 设置当前位置为0
currSheet = 0;
// 创建文件输入流
is = new FileInputStream(inputfile);
// 判断文件格式
if (filetype.equalsIgnoreCase("xls")) {
// 如果是Excel文件则创建HSSFWorkbook读取
workbook = new HSSFWorkbook(is);
// 设置Sheet数
numOfSheets = workbook.getNumberOfSheets();
}
else {
throw new Exception("File Type Not Supported");
}
}
// 函数readLine读取文件的一行
public String readLine() throws IOException {
// 如果是XLS文件则通过POI提供的API读取文件
if (filetype.equalsIgnoreCase("xls")) {
// 根据currSheet值获得当前的sheet
HSSFSheet sheet = workbook.getSheetAt(currSheet);
// 判断当前行是否到但前Sheet的结尾
// System.out.println(sheet.getLastRowNum());
if (currPosition > sheet.getLastRowNum()) {
// 当前行位置清零
currPosition = 0;
// 判断是否还有Sheet
if (currSheet != numOfSheets - 1) {
currSheet++;
// 得到下一张Sheet
sheet = workbook.getSheetAt(currSheet);
}else{
return null;
}
}
// 获取当前行数
int row = currPosition;
currPosition++;
// 读取当前行数据
return getLine(sheet, row);
}
return null;
}
// 函数getLine返回Sheet的一行数据
private String getLine(HSSFSheet sheet, int row) {
// 根据行数取得Sheet的一行
HSSFRow rowline = sheet.getRow(row);
// 创建字符创缓冲区
StringBuffer buffer = new StringBuffer();
// 获取当前行的列数
int filledColumns;
try{
filledColumns = rowline.getLastCellNum();
}catch(NullPointerException e){
return "";
}
HSSFCell cell = null;
// 循环遍历所有列
for (int i = 0; i < filledColumns; i++) {
// 取得当前Cell
cell = rowline.getCell((short) i);
String cellvalue = null;
if (cell != null) {
// 判断当前Cell的Type
switch (cell.getCellType()) {
// 如果当前Cell的Type为NUMERIC
case HSSFCell.CELL_TYPE_NUMERIC: {
// 判断当前的cell是否为Date
if (HSSFDateUtil.isCellDateFormatted(cell)) {
// 如果是Date类型则,取得该Cell的Date值
Date date = cell.getDateCellValue();
// 把Date转换成本地格式的字符串
cellvalue = cell.getDateCellValue().toString();
}
// 如果是纯数字
else {
// 取得当前Cell的数值
Integer num = new Integer((int) cell
.getNumericCellValue());
cellvalue = String.valueOf(num);
}
break;
}
// 如果当前Cell的Type为STRIN
case HSSFCell.CELL_TYPE_STRING:
// 取得当前的Cell字符串
cellvalue = cell.getRichStringCellValue().toString().replaceAll("'", "''");
break;
// 默认的Cell值
default:
cellvalue = "";
}
} else {
cellvalue = "";
}
// 在每个字段之间插入分割符
buffer.append(cellvalue).append(EXCEL_LINE_DELIMITER);
}
// 以字符串返回该行的数据
return buffer.toString();
}
// close函数执行流的关闭操作
public void close() {
// 如果is不为空,则关闭InputSteam文件输入流
if (is != null) {
try {
is.close();
} catch (IOException e) {
is = null;
}
}
// 如果reader不为空则关闭BufferedReader文件输入流
if (reader != null) {
try {
reader.close();
} catch (IOException e) {
reader = null;
}
}
}
}
评论
3 楼
xxw152413
2011-04-28
楼主,这个只能转换第一级目录下的xls啊,其他更深的目录就转换不了了啊,求解答啊
2 楼
JavaCrazyer
2010-08-18
nashuoliqu 写道
楼主,首先感谢你的分享,我看了下代码,里面有两个类HSSFWorkbook和HSSFSheet没有定义,麻烦你提供下相应jar包。我的邮箱是wenli30920@sina.com,非常感谢。
这都是POI的资源JAR包,你可以下载个POI,先学习什么是POI吧
1 楼
nashuoliqu
2010-08-18
楼主,首先感谢你的分享,我看了下代码,里面有两个类HSSFWorkbook和HSSFSheet没有定义,麻烦你提供下相应jar包。我的邮箱是wenli30920@sina.com,非常感谢。
发表评论
-
POI设置EXCEL单元格格式为文本、小数、百分比、货币、日期、科学计数法和中文大写
2011-01-25 11:07 79543再读本篇文章之前,请先看我的前一篇文章,前一篇文章中有重点讲到 ... -
POI对EXCEL的操作【重点:如何设置CELL格式为文本格式】
2011-01-25 10:07 80938实际开发过程中通常用到的就是从数据库导出EXCEL表格了,JX ... -
web网页上的文件下载功能
2010-11-18 16:00 12500首先提供下我的下载页面 那么要实现这么一种下载的话,t ... -
在IIS中设置默认的FTP目录
2010-10-19 10:13 2615【实现目标】 IIS的FTP目录默认是在“C:\inetpub ... -
Apache Common-Configuration的使用,重点介绍对XML和Properties的读取操作
2010-09-25 15:41 10018Apache Common-Configuration工具可以 ... -
关于JXL读写以及修改EXCEL文件
2010-07-29 09:08 14569首先引用网上的文章,谈谈JXL与POI的区别 POI为ap ... -
JAVA开发中POI和JXL区分
2010-07-27 10:48 7524java操作excel表格,以前只知道POI。POI是apac ... -
Java开发过程中文件上传的各种方式全面总结
2010-07-07 17:54 10036到目前为止:我接触到的有关上传的类型有这么几种JSP+Ser ... -
FTP远程上传下载文件
2010-05-25 22:21 5201最近工作中用到FTP知识,感觉比较好用,代码贴在下面 /* ... -
CSV文件读取与生成以及Excel文件的读取生成
2010-05-23 17:28 10691其一:CSV文件读取与生成 ①CSV文件读取 ... -
Java IO流各种使用方式总结
2010-05-23 17:04 2821①针对普通文本的复 ... -
使用JAVA(iText)生成word(rtf)文档---内容可含图片哦
2010-03-24 15:58 22578当我使用这个JAVA生成RTF文件时费了好大的劲,原本是 ... -
lucene开发中有关读取pdf,html,word,rtf,txt,powerpoint,excel等文档的操作
2010-03-23 10:18 7587关于这七种文档,我相信应该是最常用的文档了 在以下的介绍中 ...
相关推荐
java实现批量excel转csv,其中csv文件为utf-8格式,支持直接导入数据库。
本文将详细介绍如何利用Java实现从Excel批量导入数据到MySQL数据库。 首先,我们需要了解两个关键的库:Apache POI 和 JDBC。Apache POI 是一个开源的Java库,用于读写Microsoft Office格式的文件,包括Excel。JDBC...
java注解实现通用Excel中文表格转实体对象列表,支持中文表头,在Excel数据导入使用的...基于注解实现的支持中文表头的读取Excel数据并转换为实体对象列表的工具类,使用该工具类可将Excel数据转换成任意实体任意字段
"Java中Excel转图片工具包(纯java)"就是这样一个解决方案,它实现了将Excel文件通过PDF中间格式转化为图片的功能。 首先,让我们了解一下这个工具包的工作原理。Excel文件本身并不直接支持转换为图片格式,但可以...
6. **批处理**:为了实现批量转换,我们需要一个文件列表,遍历列表中的每一个Excel文件,重复上述读取和转换的过程。可以使用`java.io.File`类的`listFiles()`方法获取指定目录下的所有Excel文件。 7. **异常处理*...
标题"java实现excel转换成html"指出,我们将使用Java编程语言,通过Jacob库来实现Excel文件到HTML的转换。Jacob全称为JavaCOM Bridge,它是一个开源项目,提供了Java对COM组件的访问,使我们能够利用Microsoft ...
在Java编程环境中,将Excel文件转换为PDF...通过熟练掌握Aspose.Cells的API,你可以实现更复杂的转换需求,例如批量转换、自定义样式等。记得在实际应用中,根据具体需求和项目许可条款,选择合适的方式来使用这个库。
将需要转换的csv文件放到与xls文件同目录下,运行csv2xls宏即可将csv批量转换为xls文件,兼容excel2007 wps2013(需安装vba支持)。文件列表csv2xlsConvert.xls,已编写xls文件,csv2xls.txt宏代码,用法.txt。
本篇文章将深入探讨如何使用Java实现这两个功能,主要涉及的技术栈包括Apache POI库用于操作Excel,以及JDBC(Java Database Connectivity)用于与MySQL数据库进行交互。 首先,我们需要了解Apache POI库。这是一个...
在提供的信息中,我们关注到了四个重要的jar包,它们是实现Java批量导入Excel功能的核心组件。 1. **poi-3.9-20121203.jar**: 这是Apache POI项目的主要jar包,它是Java社区中广泛使用的用于读写Microsoft Office...
Java批量读取Excel表格是一种常见的数据处理需求,特别是在大数据导入、报表生成或数据分析场景中。在Java中,我们可以借助Apache POI库来实现这一功能。Apache POI是一个强大的开源库,它允许Java开发者读写...
本Java类实现了将标准的json字符串转换成map,并将数据解析到Excel的方法,本方法简单实用,可以批量导出数据到Excel文档中
通过Apache POI的API,开发者可以轻松读取Excel文件,将数据转化为Java对象,同时也可以添加、修改和删除单元格数据,实现对Excel文件的完全控制。JXL库则是一个较简单的选项,适合小型项目和简单的Excel操作。另外...
在Java编程环境中,实现Word、PPT和Excel等文件格式之间的转换是一项常见的需求,尤其是在企业级应用中。这里的关键技术是使用开源项目OpenOffice提供的API,它提供了与Microsoft Office兼容的文档处理能力。...
7. **性能优化**:如果需要批量转换大量文件,可以考虑使用多线程技术,或者利用OpenOffice支持的批处理模式,以提高转换效率。 8. **兼容性问题**:虽然OpenOffice对大多数Excel文件格式有良好的支持,但可能会...
在本项目中,"struts1 poi Excel批量导入支持xls和xlsx"是一个基于Struts1和POI实现的功能,它允许用户批量导入Excel数据,无论是旧版的.xls格式还是较新的.xlsx格式。 首先,我们需要了解Apache POI的基本用法。...
在Java编程中,将Excel数据导入到MySQL数据库是一项常见的任务,尤其在数据处理和分析的场景下。要完成这个过程,我们需要使用特定的库来读取Excel文件,并使用JDBC(Java Database Connectivity)来与MySQL数据库...
本教程将重点讲解如何使用Apache POI库来读取Excel数据,并基于这些数据批量生成Word文档。Apache POI是一个开源项目,它允许Java开发者处理Microsoft Office格式的文件,如Excel(.xlsx或.xls)和Word(.docx)。 ...
在Java平台上,批量导入Excel数据是一项常见的任务,特别是在数据分析、数据迁移或系统集成等场景下。这个过程涉及读取Excel文件、处理数据并将其有效地存入数据库。以下是一些关键的知识点,涵盖了从读取Excel到...
本文将详细讲解如何在Excel文件中批量生成INSERT语句,以便快速地将数据导入到数据库中。 首先,我们需要了解INSERT语句的基本结构。INSERT语句用于向数据库表中插入新的记录,其基本语法如下: ```sql INSERT ...