zoukankan      html  css  js  c++  java
  • excel转为txt文件 简单代码

    package cn.com.mcd.util;

    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.InputStream;

    import org.apache.poi.xssf.usermodel.XSSFCell;
    import org.apache.poi.xssf.usermodel.XSSFRow;
    import org.apache.poi.xssf.usermodel.XSSFSheet;
    import org.apache.poi.xssf.usermodel.XSSFWorkbook;

    /**
    * Excel格式转txt
    * @author soya.song
    *
    */
    public class UtilExcelToTxt {
    private static UtilExcelToTxt instance = null;
    private static String EXCEL_LINE_DELIMITER = " ";
    private static String EXCEL_LINE = " ";

    private UtilExcelToTxt(){}
    /**
    * 生成实例对象
    * @return
    */
    public static UtilExcelToTxt getInstance(){
    if (instance == null) {
    synchronized (UnZipApp.class) {
    if (instance == null)
    instance = new UtilExcelToTxt();
    }
    }
    return instance;
    }

    /**
    * @param args
    */
    public static void main(String[] args) {
    //window
    String from = "d:\file\customer_master.xlsx";
    String to = "d:\file\";
    // linux
    // String from = "/home/ap/ods/tmp/excel/from/";
    // String to = "/home/ap/ods/tmp/excel/to/";
    UtilExcelToTxt xt = UtilExcelToTxt.getInstance();
    xt.excelToTxt(from, to,"0.txt");
    }
    /**
    * excel转换成txt
    *
    * @param from 源目录
    * @param to 目标目录
    */
    public synchronized void excelToTxt(String from, String to, String newFileName) {
    File newFile = null;
    InputStream is = null;
    String fileName="customer_master.xlsx";
    FileOutputStream out = null;
    XSSFWorkbook book = null;
    XSSFSheet sheet= null;
    try {
    newFile = new File(to + newFileName);
    out = new FileOutputStream(newFile);
    //headStr(out);
    is = new FileInputStream(from);
    book =new XSSFWorkbook(new FileInputStream(new File(from)));
    sheet = book.getSheetAt(0);
    readSheet(sheet, out, fileName);
    } catch (Exception e) {
    e.printStackTrace();
    } finally {
    try {
    if (book != null)
    book = null;
    if (is != null)
    is.close();
    } catch (IOException e) {
    e.printStackTrace();
    }
    }
    // 释放out资源
    try {
    if (out != null)
    out.close();
    } catch (IOException e) {
    e.printStackTrace();
    }
    }

    // private void headStr(FileOutputStream out){
    // StringBuffer shead = new StringBuffer();
    // shead.append("DoorCode+"+EXCEL_LINE_DELIMITER+"SHIP_TO"+EXCEL_LINE_DELIMITER+"POSID"+EXCEL_LINE_DELIMITER+Status);
    // try {
    // out.write(shead.toString().getBytes());
    // } catch (IOException e) {
    // e.printStackTrace();
    // }
    // }
    /**
    * 读Sheet写到txt文件
    *
    * @param sheet
    * @param out
    */
    private void readSheet(XSSFSheet xssfSheet, FileOutputStream out,String fileName) {
    int rowTotalNum = xssfSheet.getLastRowNum();//总行数
    XSSFRow rowFirst=xssfSheet.getRow(0);//第一行
    int cols = rowFirst.getLastCellNum();//总列数
    StringBuffer sBuffer =new StringBuffer();
    if (rowTotalNum > 0) {
    //循环sheet中的所有行
    for (int rowNum = 0; rowNum < rowTotalNum; rowNum++) {
    XSSFRow xssfRow = xssfSheet.getRow(rowNum);
    if (xssfRow != null) {
    //循环一行中的所有列
    for(int j=0;j<cols;j++){
    XSSFCell cell1 = xssfRow.getCell(j);
    sBuffer.append(cell1);//CUST_ACCT_NO
    sBuffer.append(EXCEL_LINE_DELIMITER);
    }
    //一行结束后换行
    sBuffer.append(EXCEL_LINE);//UPLOAD_FILE
    }
    }
    System.out.println(sBuffer.toString());
    //读1行写到txt文件
    try {
    out.write(sBuffer.toString().getBytes());
    } catch (IOException e) {
    e.printStackTrace();
    }
    }
    }

    }

  • 相关阅读:
    Win10
    编码
    [转帖] Tomcat安全配置小技巧
    关于redis bind
    query data filtered by a JSON Column in SQLAlchemy
    Flask多线程环境下logging
    Flask request
    [转] MySQL树结构递归查询处理
    [转]了解BFF架构
    转载:ELK实战系列3-RabbitMQ+ELK搭建日志平台
  • 原文地址:https://www.cnblogs.com/songyunxinQQ529616136/p/6589551.html
Copyright © 2011-2022 走看看