0

我正在我的应用程序中创建 csv 文件 我面临的问题是,在编写用于创建 csv 文件的普通代码时,我能够管理换行符但无法处理内容中的 (,) 并且如果我使用的是 opencsv 库而不是它将句柄 (,) 但如果字符串中有换行符,则它将所有内容留在 \n 旁边。请建议如何处理。

  while (cursor.moveToNext()) 
         {
                  String _address=cursor.getString(cursor.getColumnIndexOrThrow("address"));
                  if(_address!=null)
                   writer.append(_address);
                  else
                     writer.append("Unknown");

                   writer.append(',');

                  String _body=cursor.getString(cursor.getColumnIndexOrThrow("body"));
                  if(_body.contains("\n"))
                      _body=_body.replace("\n", "\\n");
                 if(_body!=null)
                   writer.append('"'+_body+'"');
                 else
                    writer.append("");
                    writer.append(',');

                    String _IsRead=cursor.getString(cursor.getColumnIndexOrThrow("read"));
                    writer.append(_IsRead);
                    writer.append(',');
                    String SmsDate = cursor.getString(cursor.getColumnIndexOrThrow("date"));
                    writer.append(SmsDate);
                    writer.append(',');
                  // writer.append(cursor.getString(cursor.getColumnIndexOrThrow("type")));
                    if (cursor.getString(cursor.getColumnIndexOrThrow("type")).contains("1")) 
                    writer.append("Inbox");
                    else 
                    writer.append("Sent");                      
                    writer.append('\n');
            }
4

2 回答 2

0

您可以在将数据写入 CSV 文件之前对其进行预处理。字符 ',' 可以替换为 '~' 之类的字符或任何其他字符,在数据中出现的概率非常小。这不是一个万无一失的解决方案,但可以完成工作。

于 2013-04-05T10:28:45.563 回答
0

为什么不做 Excel 所做的事情:

  1. 如果有双引号,则添加另一个。
  2. 每个项目都放在双引号中。
于 2013-04-05T10:14:37.433 回答