用java将字符串数组写入csv文件的一列
所以我要做的是在列的每个单元格中写下一个数据数组,数组中的元素越多越好。我希望我在excel中也像这样:用java将字符串数组写入csv文件的一列,java,csv,filewriter,printwriter,Java,Csv,Filewriter,Printwriter,所以我要做的是在列的每个单元格中写下一个数据数组,数组中的元素越多越好。我希望我在excel中也像这样: buyer | parts | price| quantity | comments tom | blah | 546 | 5 | blah | blah | 56 | 67 | 我的文件中的列比这个多很多,但我想给出一个简单的例子。造成我的问题的另一个原因是,我不希望在写入程序完成我的数组数据集后,在写入程序所在的最后一
buyer | parts | price| quantity | comments
tom | blah | 546 | 5 | blah
| blah | 56 | 67 |
我的文件中的列比这个多很多,但我想给出一个简单的例子。造成我的问题的另一个原因是,我不希望在写入程序完成我的数组数据集后,在写入程序所在的最后一行上打印下一列,所以我希望它位于forst行上。为了实现这一点,我已经研究了其他图书馆,但我找不到任何满足我需求的图书馆。我知道CSV文件的性质可能不允许这种情况发生,如果不手动添加空白单元格,但是有其他方法可以做到这一点吗
Enumeration <String> paramNames = request.getParameterNames();
while(paramNames.hasMoreElements())
{
String paramName = (String)paramNames.nextElement();
writer.append(paramName);
writer.append(',');
String[] paramValues = request.getParameterValues(paramName);
if (paramValues.length == 1)
{
String paramValue = paramValues[0];
if (paramValue.length() == 0)
{
writer.append("No Value");
writer.append('\n');
}
else
{
writer.append(paramValue);
writer.append('\n');
}
}
else
{
for(int i = 0; i<paramValues.length; i++)
{
writer.append(paramValues[i]);
writer.append(',');
}
writer.append('\n');
}
previousname = paramName;
}
writer.flush();
writer.close();
}
Enumeration paramNames=request.getParameterNames();
while(paramNames.hasMoreElements())
{
字符串paramName=(字符串)paramNames.nextElement();
writer.append(paramName);
writer.append(',');
字符串[]paramValues=request.getParameterValues(paramName);
如果(paramValues.length==1)
{
字符串paramValue=paramValues[0];
if(paramValue.length()==0)
{
writer.append(“无值”);
writer.append('\n');
}
其他的
{
writer.append(参数值);
writer.append('\n');
}
}
其他的
{
对于(int i=0;ifrom:
可能不需要硬打印,而是循环数组并打印每个值,每个值用逗号分隔
比如:
Array array;
Iterator<String> iter = array.iterator();
while (iter.hasNext())
{
object = iter.next();
pw.print(object.getBuyer());
pw.print(",");
pw.print(object.getTitle());
..
}
数组;
迭代器iter=array.Iterator();
while(iter.hasNext())
{
object=iter.next();
print(object.getBuyer());
印刷品(“,”);
print(object.getTitle());
..
}
来自:
可能不需要硬打印,而是循环数组并打印每个值,每个值用逗号分隔
比如:
Array array;
Iterator<String> iter = array.iterator();
while (iter.hasNext())
{
object = iter.next();
pw.print(object.getBuyer());
pw.print(",");
pw.print(object.getTitle());
..
}
数组;
迭代器iter=array.Iterator();
while(iter.hasNext())
{
object=iter.next();
print(object.getBuyer());
印刷品(“,”);
print(object.getTitle());
..
}
> p> >如果你用java编写CSV文件,考虑使用库。 如果你用java编写CSV文件,考虑使用库。< /p>你是说要为每一列写所有的行吗?比如所有的买主,然后所有的标题,所有的……就像在这种情况下,我有一个买家,他可以订购多个P。艺术,我会写每一列。基本上,我得到的数据是发票类型的东西。你能更好地解释一下你已经在使用的数据结构吗?你有一个数组,里面有所有这些数据,还是5个数组,每列一个?还是一个包含数据的数组?字符串[]paramValues=request.getParameterValues(paramName);是从html表单中获取值的代码。因此通常只有一个值,但有时在表格中有多个值。我认为CSV库不会让您轻松地按列写入数据。(如果只是为了避免缓冲整个输出。)你必须在内存中生成要输出的行,根据需要使用空单元格,然后将这些行写入CSV。你是说你要为每列写入所有行。例如,所有买家,然后是所有标题,所有……就像在这种情况下,我会有一个买家,他可以订购多个部分,我会将每列写入我沿着列走。基本上我得到的数据是发票类型的东西。你能更好地解释一下你已经在使用的数据结构吗?你有一个数组,里面有所有这些数据,还是5个数组,每列一个?还是一个数组包含数据?String[]paramValues=request.getParameterValues(paramName);是从html表单中获取值的代码。因此通常只有一个值,但有时在表格中有多个值。我认为CSV库不会让您轻松地按列写入数据。(如果只是为了避免缓冲整个输出。)你必须在内存中生成要输出的行,根据需要使用空单元格,然后将它们写入CSV。我目前有代码,当我只使用垂直列表时,它可以完美地打印内容…但我需要将其作为水平列表…使多值成为一个问题我认为你需要向我们公开你的数据结构。从据我所知,每个买家可能都有多个部分,我认为最好的方法是为每个部分输入一行,但要再次与买家一起输入。String[]paramValues=request.getParameterValues(paramName)这是我从表单中获得的所有值,通常它只有一个,因为它处理的大部分是文本字段,但是当它出现在表格中间的表格时,它现在可以使用这个函数返回多个值。我添加了我目前在我的CSV文件中打印我的数据VrTiCURL的代码。这些行中的每一行都有相同的值(比如买家有很多部分,每个部分都有相同的买家),或者就像millimoose说的那样,你可以用空白来填充另一列。使用csv是一项要求吗?与你的客户核实格式,也许会有所帮助。你可以尝试将其放在db中(sqllite可能非常适合你的情况)或者将其保存为json或xml格式。我目前有代码,当我只使用垂直列表时,它可以完美地打印内容…但我需要作为水平列表…使多个值成为一个问题我认为您需要向我们公开您的数据结构。据我所知,每个买家可能都有多个部分,我认为最好的方式是r每个pa