博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【转】java将excel文件转换成txt格式文件
阅读量:6263 次
发布时间:2019-06-22

本文共 4501 字,大约阅读时间需要 15 分钟。

       在实际应用中,我们难免会遇到解析excel文件入库事情,有时候为了方便,需要将excel文件转成txt格式文件。下面代码里面提供对xls、xlsx两种格式的excel文件解析,并写入到一个新的txt文件中,数据以分隔符逗号","隔开。

 excel文件如图所示: 

转换后的txt文件:

需要依赖4个jar包:

package com.xuan.excel;import java.io.BufferedWriter;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStreamWriter;import java.util.ArrayList;import java.util.LinkedHashMap;import java.util.List;import java.util.Map;import java.util.Map.Entry; import org.apache.poi.hssf.usermodel.HSSFWorkbook;import org.apache.poi.ss.usermodel.Cell;import org.apache.poi.ss.usermodel.DateUtil;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.xssf.usermodel.XSSFWorkbook; /** * 

版权所有:版权所有(C) 2014-2099

* ──────────────────────────────────*

作 者:青莲剑仙

* ──────────────────────────────────*

将excel转成TXT文本

**/public class ExcelToTxt { 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 { File[] files=getFiles("D:\\keyword"); for(int i=0;i

> list = null; String cellData = null; String fileType=excelPath.substring(excelPath.indexOf('.') + 1); wb = readExcel(excelPath); if (wb != null) { // 用来存放表中数据 list = new ArrayList
>(); // 获取第一个sheet sheet = wb.getSheetAt(0); // 获取最大行数 int rownum = sheet.getPhysicalNumberOfRows(); // 获取第二行 row = sheet.getRow(1); // 获取最大列数 int colnum = row.getPhysicalNumberOfCells(); for (int i = 0; i < rownum; i++) { Map
map = new LinkedHashMap
(); row = sheet.getRow(i); if (row != null) { for (int j = 0; j < colnum; j++) { cellData = (String) getCellFormatValue(row.getCell(j)); map.put(columns[j], cellData); } } else { break; } list.add(map); } } // 遍历解析出来的list StringBuffer sb = new StringBuffer(); for (int i = 0; i < list.size(); i++) { for (Entry
entry : list.get(i).entrySet()) { String value = entry.getValue(); sb.append(value+","); } sb.append("\r\n"); } try { WriteToFile(sb.toString(), excelPath.replace(".xlsx", ".txt")); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println("*************EXCEL转成TXT格式成功*************"); } // 读取excel public static Workbook readExcel(String filePath) { Workbook wb = null; if (filePath == null) { return null; } String extString = filePath.substring(filePath.lastIndexOf(".")); InputStream is = null; try { is = new FileInputStream(filePath); if (".xls".equals(extString)) { return wb = new HSSFWorkbook(is); } else if (".xlsx".equals(extString)) { return wb = new XSSFWorkbook(is); } else { return wb = null; } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return wb; } public static Object getCellFormatValue(Cell cell) { Object cellValue = null; if (cell != null) { // 判断cell类型 switch (cell.getCellType()) { case Cell.CELL_TYPE_NUMERIC: { cellValue = String.valueOf(cell.getNumericCellValue()); break; } case Cell.CELL_TYPE_FORMULA: { try{ // 判断cell是否为日期格式 if (DateUtil.isCellDateFormatted(cell)) { // 转换为日期格式YYYY-mm-dd cellValue = cell.getRichStringCellValue().getString();//cell.getDateCellValue(); } else { // 数字 cellValue =cell.getRichStringCellValue().getString(); //String.valueOf(cell.getNumericCellValue()); } }catch(Exception ex){} break; } case Cell.CELL_TYPE_STRING: { cellValue = cell.getRichStringCellValue().getString(); break; } default: cellValue = ""; } } else { cellValue = ""; } return cellValue; } /** * 生成文件 * @param str * @param filePath * @throws IOException */ public static void WriteToFile(String str, String filePath) throws IOException { BufferedWriter bw = null; try { FileOutputStream out = new FileOutputStream(filePath, true);// true,表示:文件追加内容,不重新生成,默认为false bw = new BufferedWriter(new OutputStreamWriter(out, "GBK")); bw.write(str += "\r\n");// 换行 bw.flush(); } catch (Exception e) { e.printStackTrace(); } finally { bw.close(); } }}

 

from:https://blog.csdn.net/usuallyuser/article/details/81217122

你可能感兴趣的文章
Python日记——运算符和基础数据类型剖析
查看>>
What is a TensorFlow Session?
查看>>
Struts简介和配置
查看>>
编程疑难杂症の无法剔除的神秘重复记录
查看>>
传输方式
查看>>
Linux 进程间通信
查看>>
当鼠标点击label文字是光标跳到相应的input中
查看>>
mysql
查看>>
使用 IDEA 创建多模块项目
查看>>
java多态
查看>>
ffmpeg编译常规大全
查看>>
JS异步编程 XHR的用法
查看>>
poj2367 拓扑序
查看>>
C++中的集合和字典
查看>>
自动化管理之新人培养
查看>>
linux 文件上传&软件安装(rpm)
查看>>
iOS 12 越狱支持 Cydia
查看>>
Android中远程Service浅析
查看>>
面向对象的标准库(续)
查看>>
scrollHieght、offsetHeight、clientHeight、width、height
查看>>