java 操作 csv檔案

來源:互聯網
上載者:User
1     基本介紹

可以說{
tagshow(event, 'CSV');
}" href="javascript:;" target="_self">CSV格式的檔案經常碰到,何為CSV格式,CVS全稱comma-separated values,就是典型的用逗號隔開的檔案,比如下面這種檔案格式

Name,company

zhangsan,ibm

lisi,oracle

這種就是典型的CSV格式檔案。不過也可以擴充到其它符號隔開的字元,比如

Name#company

Zhangsan#ibm

Lisi#oracle

這種也算CSV格式

{
tagshow(event, 'Java');
}" href="javascript:;" target="_self">Java開源架構CVSReader提供了一個輕量級、簡單方便的統一操作介面可用,下面具體講解如何操作CVS格式

2     安裝和{
tagshow(event, '%CA%B9%D3%C3');
}" href="javascript:;" target="_self"> 使用2.1{
tagshow(event, '%CF%C2%D4%D8');
}" href="javascript:;" target="_self"> 下載

目前CSV reader的最新發行版本是1.8。我們可以從

http://opencsv.sourceforge.net/

上面下載到最新的csvreader包。

2.2安裝

直接把jar包分別存放到開發工程的類路徑下面即可使用。

3     讀取CSV格式檔案3.1基本簡介

首先,讀取CSV格式的檔案需要建立一個CSVReader,如下

CsvReader reader = new CsvReader(Reader r,  char c);

其中第一個參數為讀取檔案,第二個參數為分割符,比如“,”,或者“#”

另外,也有其它幾個參數,可以查閱API,比如

CsvReader reader = new CsvReader(InputStream r,  char c, Charset charset);等等

其次,一般需要讀取頭資訊,如下:

reader.readHeaders();

String[] headers = reader.getHeaders();

讀取了後,指標就會移動到下一行,也就是可以開始讀取檔案內容

假如,有多行的話,可以用一個迴圈套入,例如下面:

             while (reader.readRecord()) {

                    for (int i = 0; i < headers.length; i++) {

                           String value = reader.get(headers[i]);

                           System.out.print(value+" ");

                    }

                    System.out.println("");

             }

3.2綜合例子

在C盤下建立一個測試檔案test.cvs,內容如下:

a#b#c

1#2#3

4#5#6

下面是解析代碼:

      public static void main(String[] args) throws Exception {

CsvReader reader = new CsvReader(new FileReader("c://csv.txt"), '#');

             reader.readHeaders();

             String[] headers = reader.getHeaders();

             while (reader.readRecord()) {

                    for (int i = 0; i < headers.length; i++) {

                           String value = reader.get(headers[i]);

                           System.out.print(value+" ");

                    }

                    System.out.println("");

             }

      }

運行以上程式,可以看到輸出

 1 2 3

 4 5 6

4     寫CSV格式檔案

寫CSV格式檔案也比較簡單,寫每一列只要直接調用

csvWriter.write()即可

另外,寫完每行結束後,都要調用csvWriter.endRecord();

表示結束一行

檔案寫完畢後,要記得重新整理一下並關掉,如下:

       csvWriter.flush();

       csvWriter.close();

代碼如下:

   publicstaticvoidmain(String[] args)throwsException {

       CsvWriter csvWriter =newCsvWriter(newFileWriter("c://test.text"),'#');

       csvWriter.write("name");

       csvWriter.write("company");

       csvWriter.endRecord();

       csvWriter.write("11");

       csvWriter.write("12");

       csvWriter.endRecord();

       csvWriter.write("21");

       csvWriter.write("22");

       csvWriter.flush();

       csvWriter.close();

   }

}

運行以上程式,可以看到C盤下面建立了一個檔案

test.text

內容如下:

name#company

11#12

21#22

 

----------------------------------------------------------------------------------------------------------------------------------------------

利用jsp匯出csv檔案

jsp編寫如下:

<%@page contentType="application/vnd.ms-csv; charset=GBK" language="java"%><% response.setHeader("Content-disposition","attachment; filename=check_charge.csv;style=vnd.ms-csv.numberformat:@");%><%@ taglib prefix="s" uri="/struts-tags"%><s:iterator value="pageIlChargeLogList"><s:property value="ilUser.iptvId" />,<s:date name="chargeTime" format="yyyyMMddHHmmss"/>,ITV福彩儲值,<s:property value="chargeMoney" />
</s:iterator>

 

 

action return 此頁面即可匯出

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.