0

我正在寻找以编程方式创建一个简单的 3 列 csv 文件来表示电子邮件。本质上,csv 文件中的每一行将包含 3 列:

  1. 电子邮件地址
  2. 主题行
  3. html 内容/电子邮件正文

我希望用 Java / Scala 来解决这个问题。我遇到的问题是,由于格式的原因,我似乎无法让它适合 3 列。我已经尽我所能将它保存为一个简单的 1 行字符串(见下文),但我想知道这是否可能是 csv / excel 文件的一般限制,因为我什至无法手动将 html 存储到单细胞。

有人知道这是否可能吗?如果可能,我想保留所有格式,因为在接收端这将被解析并用于发送真实的电子邮件。

谢谢大家。

示例 Scala 脚本:
#!/usr/bin/env scalas
!#

import java.io.FileWriterenter    
import java.io.IOException    
import scala.xml.Utility

val emailAddress = "abc123@gmail.com"    
val subjectLine = "New Sales Are Live, Check It Out..."     
val body = scala.io.Source.fromFile("sample_email.html").mkString     
val writer = new FileWriter("output.csv")      

(0 to 10).foreach { _ =>       
writer.append(emailAddress).append(",")       
        .append(subjectLine).append(",")      
            .append(body).append("\n")      
}       

writer.flush()      
writer.close()        
4

1 回答 1

0

就像其他人一样,我建议使用现有的 csv 库之一来正确转义各种字符。这是其中之一:http: //opencsv.sourceforge.net/

SBT 依赖:

"net.sf.opencsv" % "opencsv" % "2.3"

或者只需下载一个 jar,因为您有一个 shell 脚本并将其放在类路径中。

你可以这样使用它:

val os = ...OutputStream...
val w = new CSVWriter(new OutputStreamWriter(os, "UTF-8"))
w.writeAll // or: w.writeNext ... etc
于 2013-10-13T00:04:52.423 回答