这里我需要从表中获取值而不是显示名称,年龄等手动值。 而且我不需要在位置生成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();
}
}
}
答案 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)
简单解决方案:
使用RegEx仅提取表格的内部部分(在
<table></table>
代码)
使用RegEx删除<tr></tr>
与这些标记之间的所有换行符
他们自己(行)
使用RegEx替换&#34; </td><td>
&#34;与&#34;,&#34;
使用RegEx删除剩余标签