0

プログラムで電子メールを表す単純な 3 列の csv ファイルを作成しようとしています。基本的に、csv ファイルの各行には 3 つの列が含まれます。

  1. 電子メールアドレス
  2. 件名
  3. html コンテンツ / メールの本文

私はJava/Scalaでこれをやろうとしています。私が直面している問題は、書式設定のために、3 列に収まらないように見えることです。単純な1行の文字列として保存するためにできることを行いましたが(以下を参照)、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 ライブラリのいずれかを使用して、あらゆる種類の文字を適切にエスケープすることをお勧めします。ここにそれらの1つがあります:http://opencsv.sourceforge.net/

SBT への依存:

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

または、シェルスクリプトを持っているのでjarをダウンロードしてクラスパスに配置します。

次のように使用できます。

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