【问题标题】:How to export table contents to csv using java?如何使用java将表格内容导出到csv?
【发布时间】:2014-06-25 07:29:52
【问题描述】:

这里我需要从表中获取值,而不是手动值,例如显示名称、年龄。 而且我不需要在位置生成 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();
    } 
    }
}

【问题讨论】:

  • 您自己做过这些吗?究竟是什么不工作?

标签: java csv


【解决方案1】:

假设您有一个带有表格的 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】:

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

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

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

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

    【讨论】:

      【解决方案3】:

      简单的解决方案:

      1. 使用 RegEx 仅提取表的内部部分(在 &lt;table&gt;&lt;/table&gt;标签)

      2. 使用 RegEx 删除 &lt;tr&gt;&lt;/tr&gt; 和这些标签之间的所有换行符 自己(行)

      3. 使用正则表达式将“&lt;/td&gt;&lt;td&gt;”替换为“,”

      4. 使用 RegEx 删除剩余标签

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-12-08
        • 2013-05-11
        • 2020-11-26
        • 1970-01-01
        • 1970-01-01
        • 2018-06-27
        • 2020-11-14
        • 1970-01-01
        相关资源
        最近更新 更多