如何使用java将表内容导出到csv?

时间:2014-06-25 07:29:52

标签: java csv

这里我需要从表中获取值而不是显示名称,年龄等手动值。 而且我不需要在位置生成csv文件。相反,它应该向我显示一个弹出窗口,我可以下载csv文件。怎么做到这一点?

到目前为止,我尝试使用java将数据导出到csv。 我使用了一些手动值,如显示名称,年龄。但我需要从表中获取值。例如

<table>
<td>
--datas--
</td>
</table>

Java代码:

import java.io.FileWriter;
import java.io.IOException;

public class test
{
   public static void main(String [] args)
   {
       generateCsvFile("D:/test.csv"); 
   }

   private static void generateCsvFile(String sFileName)
   {
    try
    {
        FileWriter writer = new FileWriter(sFileName);

        writer.append("DisplayName");
        writer.append(',');
        writer.append("Age");
        writer.append('\n');

        writer.append("Dinesh");
        writer.append(',');
        writer.append("23");
        writer.append('\n');

        writer.append("Kumar");
        writer.append(',');
        writer.append("29");
        writer.append('\n');

        //generate whatever data you want

        writer.flush();
        writer.close();
    }
    catch(IOException e)
    {
         e.printStackTrace();
    } 
    }
}

3 个答案:

答案 0 :(得分:0)

我假设您正在动态生成表并使用httpSession,您可以像这样在会话中设置表:

HttpSession.setAttribute("Data", ArrayList<Object> data);

然后在生成时从那里获取表格:

 ArrayList<Object> data = this.context.getSession().getAttribute("Data");

答案 1 :(得分:0)

假设您有一个包含该表的jsp页面。在提交jsp页面时,您可以通过阅读表格从javascript形成逗号分隔的表值字符串。

例如

//gets table
var table= document.getElementById('table1');

//gets rows of table
var rowLen = table.rows.length;

//loops through rows    
for (i = 0; i < rowLen; i++){
   var oCells = table.rows.item(i).cells;
   var cellLen = oCells.length;
   for(var j = 0; j < cellLen; j++){
      /* get your cell info here */
      /* var cellVal = oCells.item(j).innerHTML; */
   }
}

,一旦你有逗号分隔值的字符串,就可以将它传递给处理提交请求的操作。

答案 2 :(得分:0)

简单解决方案:

  1. 使用RegEx仅提取表格的内部部分(在 <table></table>代码)

  2. 使用RegEx删除<tr></tr>与这些标记之间的所有换行符 他们自己(行)

  3. 使用RegEx替换&#34; </td><td>&#34;与&#34;,&#34;

  4. 使用RegEx删除剩余标签