|
分類:[C#]
visual studio 2019
ClosedXml
初心者です。C#とClosedXmlを使用してExcelファイル出力をしています。
年のところを「4月 5月 6月」とだけ表示したいですが、下記のように出力されてうまく表示されません。
また、金額を出力するところがどうソースを書けばよいか分からず悩んでおります。
ちなみにピボットテーブルを使用すればいいと思いますが、使用しない方法を試しています。
どうすればいいでしょうか? よろしくお願いいたします。
public class Pastry
{
public Pastry(string code, string name, int amount, string date, string month)
{
Code = code;
Date = date;
Name = name;
NumberOfOrders = amount;
Month = month;
}
public string Code { get; set; }
public string Name { get; set; }
public int NumberOfOrders { get; set; }
public string Date { get; set; }
public string Month { get; set; }
}
pastries = new List<Pastry>
{
new Pastry("1","Croissant", 150, "2019/04/01", "4月"),
new Pastry("1","Croissant", 200, "2019/04/02", "4月"),
new Pastry("1","Croissant", 250, "2019/05/01", "5月"),
new Pastry("1","Croissant", 134, "2019/06/01", "6月"),
new Pastry("2","Doughnut", 250, "2019/04/02", "4月"),
new Pastry("2","Doughnut", 225, "2019/05/02", "5月"),
new Pastry("2","Doughnut", 210, "2019/06/02", "6月"),
new Pastry("3","Bearclaw", 134, "2019/04/03", "4月"),
new Pastry("3","Bearclaw", 184, "2019/05/03", "5月"),
new Pastry("3","Bearclaw", 124, "2019/06/03", "6月"),
new Pastry("4","Danish", 394, "2019/04/04", "4月"),
new Pastry("4","Danish", 190, "2019/05/04", "5月"),
new Pastry("4","Danish", 221, "2019/06/04", "6月"),
new Pastry("5","Scone", 135, "2019/04/05", "4月"),
new Pastry("5","Scone", 122, "2019/05/05", "5月"),
new Pastry("5","Scone", 243, "2019/06/05", "6月")
};
var workbook = new XLWorkbook();
var aggregateSheet = workbook.Worksheets.Add("集計");
aggregateSheet.SetShowZeros(false);
aggregateSheet.SetAutoFilter();
aggregateSheet.SheetView.FreezeRows(2);
//ヘッダ出力
aggregateSheet.Cell("A2").Value = "名前";
aggregateSheet.Cell("B2").Value = "コード";
//データ出力
int rowIndex = 3;
int collumnIndex = 3;
//データの書出し
foreach (var row in pastries)
{
aggregateSheet.Cell(rowIndex, "A").Value = row.Name;
aggregateSheet.Cell(rowIndex, "B").Value = row.Code;
aggregateSheet.Cell(2, collumnIndex).Value = row.Month;
aggregateSheet.Cell(2, collumnIndex).Style.NumberFormat.SetFormat("MM月");
rowIndex++;
collumnIndex++;
}
※Excelファイル
※月の表示を4月 5月 6月と表示
名前 コード 04月 04月 05月 06月 04月 05月 06月 04月 05月 06月 04月
Croissant 1
Croissant 1 ※ここに金額を出力したい。
Croissant 1
Croissant 1
Doughnut 2
Doughnut 2
Doughnut 2
Bearclaw 3
Bearclaw 3
Bearclaw 3
Danish 4
Danish 4
Danish 4
Scone 5
Scone 5
Scone 5
|