如何从CSV格式的文件中,读取出相应的数据
而且CSV中的数据有一个表格样子的格式,要读取“備考”这一列里面的数据出来
请教各位高手No 項目 備考
1 電機
2 WBS
3 PID
4 CP
5 社供出
6 原価実績
7 社供WC
8 外注費
9 直材費
10 自家製品
11 直経費
12 その他
13 注残
14 注残

解决方案 »

  1.   

    CSV中的数据格式如下:
    我要读取的是備考这一栏里面的数据。No      項目           備考 
    1       電機 
    2       WBS 
    3       PID 
    4       CP 
    5       社供出 
    6      原価実績 
    7      社供WC 
    8      外注費 
    9      直材費 
    10     自家製品 
    11     直経費 
    12     その他 
    13     注残 
    14     注残 
      

  2.   

    貌似你的備考没有数据阿
    有两个方法吧:
    1,如果你确定有三列,那么可以一行行的读取csv文件,然后用,分割读出的行,取分割出的最后的值。
    2,如果数据量比较大,可以考虑先导入数据库,然后取到结果再导出。
      

  3.   

    CSV的内容是用逗号‘,’作为表格分隔符的 你一行一行的读完了分割就就行了
      

  4.   

    根据你的题目,给你个例子
    import java.io.BufferedReader;
    import java.io.FileReader;public class TestRead { public static void main(String[] args) {
    try {
    BufferedReader reader = new BufferedReader(new FileReader("a.csv"));//换成你的文件名
    reader.readLine();//第一行信息,为标题信息,不用,如果需要,注释掉
    String line = null;
    while((line=reader.readLine())!=null){
    String item[] = line.split(",");//CSV格式文件为逗号分隔符文件,这里根据逗号切分

    String last = item[item.length-1];//这就是你要的数据了
    //int value = Integer.parseInt(last);//如果是数值,可以转化为数值
    System.out.println(last);
    }
    } catch (Exception e) {
    e.printStackTrace();
    }
    }}
      

  5.   

    还有一个问题,就是如何把从DB里读取的数据,生成CSV格式的文件呢
      

  6.   

    下载csv的实现方法:/**
         * 把列表内容导出到指定的CSV文件
         * 
         * @param response
         *            传入的HttpServletResponse
         * @param file
         *            指定的文件名
         * @param rows
         *            要导出的列表内容
         * @throws IOException
         * 
         * @author kakukyowu
         */
        public static void exportCsv(HttpServletResponse response, String file, List<String[]> rows) throws IOException {        StringBuffer record = new StringBuffer();        for (int i = 0; i < rows.size(); i++) {
                String[] cells = rows.get(i);            if (cells != null) {
                    for (int j = 0; j < cells.length; j++) {
                        record.append(cells[j] + ",");
                    }
                    record.append("\r\n");
                }
            }        response.reset();        response.setContentType("Application/text/csv");        response.setHeader("Content-Disposition", "attachment;filename=\"" + URLEncoder.encode(file, DEFAULT_ENCODING)
                    + "\"");        ServletOutputStream servletout = response.getOutputStream();
            PrintWriter outpw = new PrintWriter(new OutputStreamWriter(servletout, "MS932"));        outpw.write(record.toString());
            outpw.close();
            servletout.close();
    }
    action:/**
         * 
          * XXXXXX
         * @param actionMapping
         * @param form
         * @param request
         * @param response
         * @return
         * @throws Exception
         * 
         * @author kakukyowu
         */
        @SuppressWarnings("unchecked")
        public ActionForward doexportCsv(ActionMapping actionMapping, ActionForm form, HttpServletRequest request,
                HttpServletResponse response) throws Exception {        String fileName = "XXX.csv";
            CsvExportUtil.exportCsv(response, fileName, new ArrayList<String[]>());
            //new的这个list处调用其它方法查询数据库,然后组织数据返回        return null;
        }
      

  7.   

    テーブル名   項目名      備考
    ----------------------------------
                 |    PID
                ----------------------     
       |    電機
                  ----------------------
    基本情报      |    内部管理
                  ----------------------
        |    名称
                  ----------------------
                 |   PJ種類
                 -----------------------
        |     PJ管理
    ----------------------------------   
    客户给的一个EXCEL,说上面这个是CSV的格式,
    这样的情况,怎么实现呢?
    CSV有要求说一行数据不垮行,那么以上的格式能实现吗?
      

  8.   

    テーブル名  項目名     備考 
    ---------------------------------- 
                |    PID 
                ----------------------     
                |    電機 
                  ---------------------- 
    基本情报     |    内部管理 
                  ---------------------- 
               |    名称 
                  ---------------------- 
               |  PJ種類 
                ----------------------- 
               |    PJ管理 
    ----------------------------------   
      

  9.   

     com.Ostermiller.util.ExcelCSVParser;
     com.Ostermiller.util.LabeledCSVParser;
    如果用这个类写出来的读取CSV的方法,
    但是因为CSV文件里面的是日文,读出来的数据就是乱码,
    我想用这个类,该怎么做才能正确的读出数据,而不是乱码呢?
      

  10.   

    呵呵,你用什么工具打开的?
    我都是用EmEditor,
    打开后右下角会有字符集提示,
    双击一下就会弹出字符集,选择就是了。
      

  11.   

    日文正常情况下一般选择:日文(Shift-JIS) 就可以