私の要件は、DB からの値を .csv ファイルに書き込み、同じものを電子メールで送信することです。以下のコードで DB から値をフェッチし、createFile(testFile) メソッドによってファイルを作成してサーバーの場所に保存し、同じものを電子メールで送信しました。
//サンプル入力データ:
SRT678,Textile STS Secure Limited, OMD,First,Last
問題は、SRT678 が column1 、Textile STS Secure Limited - column2 、OMD - column3 に移動することですが、column2 に " Textile STS Secure Limited, OMD " が必要です。区切り文字を「、」として設定しませんでしたが、デフォルトでは「、」が区切り文字として使用されると思います。
Excel はシステムの地域設定を使用します - リストセパレーターを使用して、使用するデフォルトの区切り文字を決定します。コードを使用して変更を行う方法はありますか? Textile STS Secure Limited, OMDの"," をスキップして、Excel で同じ列にする方法を教えてください。
public Object extractData(ResultSet rs) {
List list1 = new ArrayList();
TestFileInfo testFile = new TestFileInfo();
String base_name="UsersInfo";
String file_name=base_name + ".csv";
testFile.setFileName(file_name);
String header_row="empid,empName,firstName,lastName\r\n";
list1.add(header_row);
boolean valid = true;
int total = 0;
while (rs.next()) {
if (valid) {
total ++;
String row = rs.getString("empid")
+ "," + rs.getString("empName")
+ "," + rs.getString("firstName")
+ "," + rs.getString("lastName")
+ "\r\n" ;
list1.add(row);
}
else {
break;
}
}
if (valid)
{
testFile.setTotalRecords(total);
testFile.setRowList(list1);
}
else
{
testFile = null;
}
return testFile;
}
// createFile(testFile);
static public void createFile( TestFileInfo testFile){
List rowList = file.getRowList();
File testFile = new File(location,file.getFileName());
if (!testFile.exists()) {
testFile.createNewFile();
}
FileWriter fstream = new FileWriter(testFile);
BufferedWriter out = new BufferedWriter (fstream);
for (Iterator row = rowList.iterator(); row.hasNext();) {
out.write((String) row.next());
}
out.close();
file.setCsvFile(testFile);
return ;
}
あなたの助けをいただければ幸いです!ありがとう!