java导出导入csv文件代码,java实现导出csv文件

发布时间:2022-11-18

本文目录一览:

1、JAVA导入txt、CSV的例子
2、如何从java中导出数据到csv中
3、java如何导出csv文件 用户点击导出可以导出到他想保存的地方
4、java实现把csv文件导入到sqlserver
5、java把数据库读取的数据通过流写入到csv文件里,请问怎么写代码?请求。
6、求个java读取csv文件并输出的程序

JAVA导入txt、CSV的例子

导入文件若为二进制格式的csv或xls文件需要用jxl.jar包来解析,若文件为文本格式逗号分隔的csv文件则需要用opencsv.jar包来解析。下面为导入两种格式文件的代码示例:

  1. 导入文本格式逗号分隔的csv文件
import au.com.bytecode.opencsv.CSVReader;
public void importCsvFile() {
    CSVReader csvReader = null;
    try {
        csvReader = new CSVReader(new FileReader(importFile), ','); // importFile为要导入的文本格式逗号分隔的csv文件,提供getXX/setXX方法
        if (csvReader != null) {
            // first row is title, so past
            csvReader.readNext();
            String[] csvRow = null; // row
            while ((csvRow = csvReader.readNext()) != null) {
                for (int i = 0; i < csvRow.length; i++) {
                    String temp = csvRow[i];
                    switch (i) {
                        case 0:
                            if (StringUtils.isNotEmpty(temp)) {
                                linkman.setLinkmanName(temp);
                            }
                            break;
                        case 1:
                            if (StringUtils.isNotEmpty(temp)) {
                                linkman.setLinkmanEmail(temp);
                            }
                            break;
                        default:
                            break;
                    }
                }
                // 保存linkman到数据库
                if (linkman.getLinkmanName() != null && linkman.getLinkmanEmail() != null) {
                    EmailLinkmanAPI.insertLinkman(linkman);
                }
            }
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
}
  1. 二进制格式的csv或xls文件
import jxl.Sheet;
import jxl.Workbook;
public void importXlsFile() {
    Workbook book = null;
    try {
        book = Workbook.getWorkbook(importFile); // importFile为要导入的xls文件,或二进制的csv文件,提供getXX/setXX方法
    } catch (Exception e) {
        e.printStackTrace();
    }
    if (book != null) {
        int sheetNo = book.getNumberOfSheets();
        for (int i = 0; i < sheetNo; i++) {
            Sheet sheet = book.getSheet(i);
            int rowNum = sheet.getRows();
            int colNum = sheet.getColumns();
            // first row is title, so past
            for (int r = 1; r < rowNum; r++) { // 行
                for (int c = 0; c < colNum; c++) { // 列
                    String temp = sheet.getCell(c, r).getContents();
                    switch (c) {
                        case 0:
                            if (StringUtils.isNotEmpty(temp)) {
                                linkman.setLinkmanName(temp);
                            }
                            break;
                        case 1:
                            if (StringUtils.isNotEmpty(temp)) {
                                linkman.setLinkmanEmail(temp);
                            }
                            break;
                        default:
                            break;
                    }
                }
                // 保存linkman到数据库
                if (linkman.getLinkmanName() != null && linkman.getLinkmanEmail() != null) {
                    EmailLinkmanAPI.insertLinkman(linkman);
                }
            }
        }
    }
}

如何从java中导出数据到csv中

其实csv文件格式和txt文件一样,你用ue或者editplus打开它看看,就是一些字符串,中间用逗号隔开了。 所以你从java中导出数据到csv文件中是和导出到txt文件中一样的,导出的文件后缀名改成csv就ok了。

java如何导出csv文件 用户点击导出可以导出到他想保存的地方

这种通常是如下做法: 1:提供查询页面,让用户输入查询条件
2:根据查询条件到数据库去检索,并获取到对应的记录
3:生成csv到本地(可以省略,生成临时文件到tomcat的临时目录)
4:用读取文件,用response写流到客户端

java实现把csv文件导入到sqlserver

可以通过BufferedReader流的形式进行流缓存,之后通过readLine方法获取到缓存的内容。

BufferedReader bre = null;
try {
    String file = "D:/test/test.txt";
    bre = new BufferedReader(new FileReader(file)); // 此时获取到的bre就是整个文件的缓存流
    String str;
    while ((str = bre.readLine()) != null) { // 判断最后一行不存在,为空结束循环
        String item[] = str.split(","); // CSV格式文件为逗号分隔符文件,这里根据逗号切分
        String last = item[item.length - 1]; // 通过此方法获取到数据信息
        // int value = Integer.parseInt(last); // 如果是数值,可以转化为数值
        System.out.println(last); // 此处转换成数据库相应的语句即可实现存储操作
    }
} catch (Exception e) {
    e.printStackTrace();
} finally {
    if (bre != null) {
        try {
            bre.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

备注:流用完之后必须close掉,如上面的就应该是:bre.close(),否则bre流会一直存在,直到程序运行结束。

java把数据库读取的数据通过流写入到csv文件里,请问怎么写代码?请求。

File file = new File("d:/test.csv");
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file)));
bw.write("123456");
bw.write("89898");
bw.close();

求个java读取csv文件并输出的程序

要使用CsvReader,CsvWriter需要下载一个javacsv.jar导入到项目中

package test;
import com.csvreader.CsvReader;
import com.csvreader.CsvWriter;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class readandwrite {
    public static void main(String[] args) throws IOException {
        String[] str = {"省", "市", "区", "街", "路", "里", "幢", "村", "室", "园", "苑", "巷", "号"};
        String inString = "";
        String tmpString = "";
        File inFile = new File("C://in.csv"); // 读取的CSV文件
        File outFile = new File("C://outtest.csv"); // 输出的CSV文件
        try {
            BufferedReader reader = new BufferedReader(new FileReader(inFile));
            BufferedWriter writer = new BufferedWriter(new FileWriter(outFile));
            CsvReader creader = new CsvReader(reader, ',');
            CsvWriter cwriter = new CsvWriter(writer, ',');
            while (creader.readRecord()) {
                inString = creader.getRawRecord(); // 读取一行数据
                for (int i = 0; i < str.length; i++) {
                    tmpString = inString.replace(str[i], "," + str[i] + ",");
                    inString = tmpString;
                }
                // 第一个参数表示要写入的字符串数组,每一个元素占一个单元格,第二个参数为true时表示写完数据后自动换行
                cwriter.writeRecord(inString.split(","), true);
                // 注意,此时再用cwriter.write(inString)方法写入数据将会看到只往第一个单元格写入了数据,“,”没起到调到下一个单元格的作用
                // 如果用cwriter.write(String str)方法来写数据,则要用cwriter.endRecord()方法来实现换行
                // cwriter.endRecord(); // 换行
                cwriter.flush(); // 刷新数据
            }
            creader.close();
            cwriter.close();
        } catch (FileNotFoundException ex) {
            ex.printStackTrace();
        }
    }
}