我有一個 C# 程式,它應該生成如下所示的輸出:

但是,我的輸出當前如下所示:

這是我的代碼目前的樣子:
System.Text.Encoding.RegisterProvider(System.Text.CodePagesEncodingProvider.Instance);
using (StreamWriter writer = new StreamWriter(outputPath, false, new UTF8Encoding(true)))
{
writer.WriteLine("");
writer.WriteLine("");
writer.WriteLine(String.Join(",", ",", "H2 2020", ",", ",", ",", "H1 2021", ",", ",", ",", "H2 2021"));
writer.WriteLine(String.Join(",", ",", "Searches", "Impressions", "Net Cost", ",", ",", "Searches", "Impressions", "Net Cost", ",", ",", "Searches", "Impressions", "Net Cost" ));
foreach (OutputRow outputRow in outputRows)
{
writer.WriteLine(String.Join(",", outputRow.Brand, outputRow.SearchesA, outputRow.ImpressionsA, outputRow.NetCostA, ",", ",", outputRow.Brand, outputRow.SearchesB, outputRow.ImpressionsB, outputRow.NetCostB, ",", ",", outputRow.Brand, outputRow.SearchesC, outputRow.ImpressionsC, outputRow.NetCostC));
}
}
在閱讀了此處有關在 CSV 寫入器中跳過單元格/添加空單元格的其他答案后,您所要做的就是在他們想要一個空單元格的地方添加一個帶逗號的字串。正如您所看到的,即使逗號字串的數量與單詞字串之間的空單元格的數量不匹配,我也讓前兩行看起來可以接受。我的問題是:我能做些什么來添加正確數量的空單元格以使其看起來像我發布的正確輸出,為什么我的逗號字串不能生成正確數量的空單元格?
uj5u.com熱心網友回復:
使用 時String.Join(),第一個引數是分隔符,它添加在每個附加字串引數之間。不要嘗試將其他逗號作為分隔字串的一部分;改為使用空字串作為占位符。這樣計算細胞會容易得多。
using (StreamWriter writer = new StreamWriter(outputPath, false, new UTF8Encoding(true)))
{
writer.WriteLine("");
writer.WriteLine("");
// A B C D E F G H I J K L M N O
writer.WriteLine(String.Join(",", "", "", "H2 2020", "", "", "", "", "", "H1 2021", "", "", "", "", "", "H2 2021"));
// A B C D E F G H I J K L M N O P Q
writer.WriteLine(String.Join(",", "", "", "Searches", "Impressions", "Net Cost", "", "", "", "Searches", "Impressions", "Net Cost", "", "", "", "Searches", "Impressions", "Net Cost" ));
foreach (OutputRow outputRow in outputRows)
{
writer.WriteLine(String.Join(",", "", outputRow.Brand, outputRow.SearchesA, outputRow.ImpressionsA, outputRow.NetCostA, "", "", outputRow.Brand, outputRow.SearchesB, outputRow.ImpressionsB, outputRow.NetCostB, "", "", outputRow.Brand, outputRow.SearchesC, outputRow.ImpressionsC, outputRow.NetCostC));
}
}
但 CSV 似乎不太適合這些資料。您可能會選擇像SpreadsheetML這樣的東西。這將使您可以執行諸如設定標題的列寬和粗體字重之類的操作。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/486688.html
