java导出和导入csv文件工具类
来源:互联网 发布:女生学编程 编辑:程序博客网 时间:2024/05/27 02:30
package com.yy.utils;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.List;
import java.util.Properties;
import javax.servlet.http.HttpServletResponse;
import jxl.common.Logger;
public class CSVUtils {
public static Logger logger = Logger.getLogger(CSVUtils.class);
public static String TAB = "\r\n";
static{
Properties prop = System.getProperties();
String os = prop.getProperty("os.name").toLowerCase();
if(os.startsWith("win")){
TAB = "\r\n";
}else if(os.startsWith("linux") || os.startsWith("unix")){
TAB = "\n";
}else if(os.startsWith("mac")){
TAB = "\r";
}
}
/**
* @Description: 导出csv
* @param response
* @param titles
* @param data
* @param fileName
* @author: leijing
* @date: 2016年7月28日 下午6:19:33
*/
public static void exportCsv(HttpServletResponse response,List<String> titles,List<List<String>> data,String fileName){
StringBuffer sb = new StringBuffer();
OutputStream outputStream = null;
for (int i = 0; i < titles.size(); i++) {
if(i != titles.size() - 1){
sb.append(titles.get(i)).append(",");
}else{
sb.append(titles.get(i)).append(TAB);
}
}
for (int i = 0; i < data.size(); i++) {
List<String> row = data.get(i);
for(int j = 0 ; j < row.size(); j++ ){
if(j != row.size() - 1){
sb.append(row.get(j)).append(",");
}else{
sb.append(row.get(j)).append(TAB);
}
}
}
try {
response.addHeader("Content-Disposition","attachment;fileName=" + new String(fileName.getBytes("UTF-8"),"iso8859-1"));
//response.addHeader("Content-Length", "" + sb.length());
//response.setContentType("application/csv;charset=UTF-8");
response.setContentType("multipart/form-data");//设置文件ContentType类型,这样设置,会自动判断下载文件类型
outputStream = response.getOutputStream();
outputStream.write(new byte []{( byte ) 0xEF ,( byte ) 0xBB ,( byte ) 0xBF });//加上bom头,才不会中文乱码
outputStream.write(sb.toString().getBytes("UTF-8"));
outputStream.flush();
} catch (IOException e) {
logger.error("CSVUtils.exportCsv error:",e);
}finally{
try {
outputStream.close();
} catch (IOException e) {
logger.error("CSVUtils.exportCsv close OutputStream error:",e);
}
}
}
/**
* @Description: 导入csv
* @param file
* @return: List<String>
* @author: leijing
* @date: 2016年7月28日 下午6:20:14
*/
public static List<String> importCsv(File file){
List<String> data = new ArrayList<String>();
BufferedReader br = null;
try {
br = new BufferedReader(new FileReader(file));
String line = "";
while((line = br.readLine()) != null){
data.add(line);
}
} catch (Exception e) {
logger.error("CSVUtils.importCsv error:",e);
}finally{
try {
br.close();
} catch (IOException e) {
logger.error("CSVUtils.importCsv close BufferedReader error:",e);
}
}
return data;
}
/**
*
* @Description: 导入csv
* @param inputStream
* @return: List<String>
* @author: leijing
* @date: 2016年7月28日 下午6:20:44
*/
public static List<String> importCsv(InputStream inputStream){
List<String> data = new ArrayList<String>();
BufferedReader br = null;
try {
br = new BufferedReader(new InputStreamReader(inputStream));
String line = "";
while((line = br.readLine()) != null){
data.add(line);
}
} catch (Exception e) {
logger.error("CSVUtils.importCsv error:",e);
}finally{
try {
br.close();
inputStream.close();
} catch (IOException e) {
logger.error("CSVUtils.importCsv close BufferedReader or InputStream error:",e);
}
}
return data;
}
}
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.List;
import java.util.Properties;
import javax.servlet.http.HttpServletResponse;
import jxl.common.Logger;
public class CSVUtils {
public static Logger logger = Logger.getLogger(CSVUtils.class);
public static String TAB = "\r\n";
static{
Properties prop = System.getProperties();
String os = prop.getProperty("os.name").toLowerCase();
if(os.startsWith("win")){
TAB = "\r\n";
}else if(os.startsWith("linux") || os.startsWith("unix")){
TAB = "\n";
}else if(os.startsWith("mac")){
TAB = "\r";
}
}
/**
* @Description: 导出csv
* @param response
* @param titles
* @param data
* @param fileName
* @author: leijing
* @date: 2016年7月28日 下午6:19:33
*/
public static void exportCsv(HttpServletResponse response,List<String> titles,List<List<String>> data,String fileName){
StringBuffer sb = new StringBuffer();
OutputStream outputStream = null;
for (int i = 0; i < titles.size(); i++) {
if(i != titles.size() - 1){
sb.append(titles.get(i)).append(",");
}else{
sb.append(titles.get(i)).append(TAB);
}
}
for (int i = 0; i < data.size(); i++) {
List<String> row = data.get(i);
for(int j = 0 ; j < row.size(); j++ ){
if(j != row.size() - 1){
sb.append(row.get(j)).append(",");
}else{
sb.append(row.get(j)).append(TAB);
}
}
}
try {
response.addHeader("Content-Disposition","attachment;fileName=" + new String(fileName.getBytes("UTF-8"),"iso8859-1"));
//response.addHeader("Content-Length", "" + sb.length());
//response.setContentType("application/csv;charset=UTF-8");
response.setContentType("multipart/form-data");//设置文件ContentType类型,这样设置,会自动判断下载文件类型
outputStream = response.getOutputStream();
outputStream.write(new byte []{( byte ) 0xEF ,( byte ) 0xBB ,( byte ) 0xBF });//加上bom头,才不会中文乱码
outputStream.write(sb.toString().getBytes("UTF-8"));
outputStream.flush();
} catch (IOException e) {
logger.error("CSVUtils.exportCsv error:",e);
}finally{
try {
outputStream.close();
} catch (IOException e) {
logger.error("CSVUtils.exportCsv close OutputStream error:",e);
}
}
}
/**
* @Description: 导入csv
* @param file
* @return: List<String>
* @author: leijing
* @date: 2016年7月28日 下午6:20:14
*/
public static List<String> importCsv(File file){
List<String> data = new ArrayList<String>();
BufferedReader br = null;
try {
br = new BufferedReader(new FileReader(file));
String line = "";
while((line = br.readLine()) != null){
data.add(line);
}
} catch (Exception e) {
logger.error("CSVUtils.importCsv error:",e);
}finally{
try {
br.close();
} catch (IOException e) {
logger.error("CSVUtils.importCsv close BufferedReader error:",e);
}
}
return data;
}
/**
*
* @Description: 导入csv
* @param inputStream
* @return: List<String>
* @author: leijing
* @date: 2016年7月28日 下午6:20:44
*/
public static List<String> importCsv(InputStream inputStream){
List<String> data = new ArrayList<String>();
BufferedReader br = null;
try {
br = new BufferedReader(new InputStreamReader(inputStream));
String line = "";
while((line = br.readLine()) != null){
data.add(line);
}
} catch (Exception e) {
logger.error("CSVUtils.importCsv error:",e);
}finally{
try {
br.close();
inputStream.close();
} catch (IOException e) {
logger.error("CSVUtils.importCsv close BufferedReader or InputStream error:",e);
}
}
return data;
}
}
0 0
- java导出和导入csv文件工具类
- Java导入导出CSV文件
- java导出excel,导入excel,导出csv工具类整理
- 导出CSV文件工具类
- JAVA操作csv文件(导入导出)
- java 实现csv文件导入导出
- 使用PHP导入和导出CSV文件
- 使用PHP导入和导出CSV文件
- 使用PHP导入和导出CSV文件
- 使用PHP导入和导出CSV文件
- 使用PHP导入和导出CSV文件
- 使用PHP导入和导出CSV文件
- 使用PHP导入和导出CSV文件
- MySQL数据库导入和导出csv文件
- 使用PHP导入和导出CSV文件
- 使用PHP导入和导出CSV文件
- 使用PHP导入和导出CSV文件
- 使用PHP导入和导出CSV文件
- vim如何添加或删除多行注释
- Java--StringBuilder equals
- 图论 匈牙利最大匹配
- 【php】连接mysql的几种方法
- 极光推送 - 关于一个项目多个key的方法(2)
- java导出和导入csv文件工具类
- [leetcode] 28. Implement strStr()
- ETL中的数据增量抽取机制
- Ajax入门(二)——乱码问题的解决
- WKWebView的使用详解
- Kd-Tree算法原理和开源实现代码
- 友盟QQ获得用户信息
- C#Winform程序如何发布并自动升级(图解)
- 打造高质量Android代码系列之避免重复代码