回答編集履歴
3
コード修正
test
CHANGED
@@ -30,7 +30,13 @@
|
|
30
30
|
|
31
31
|
string categoryName = "hoge"; //TODO:正しいカテゴリ名をどこかから取得する
|
32
32
|
|
33
|
+
WorkSheet ws = 抽出1が新しいカテゴリなら ?
|
34
|
+
|
33
|
-
|
35
|
+
CreateCategorySheet(wb, categoryName) :
|
36
|
+
|
37
|
+
(Worksheet)workbook.Worksheets[categoryName];
|
38
|
+
|
39
|
+
|
34
40
|
|
35
41
|
WriteToWorkSheet(ws);
|
36
42
|
|
@@ -52,25 +58,15 @@
|
|
52
58
|
|
53
59
|
|
54
60
|
|
55
|
-
private Worksheet
|
61
|
+
private Worksheet CreateCategorySheet(WorkBook wb, string categoryName){
|
56
62
|
|
57
|
-
Work
|
63
|
+
wb.Worksheets.Add();
|
58
64
|
|
59
|
-
|
65
|
+
//NOTE: wb.Sheets[1]がブックの最初にあるシートなのでCountから1を引く必要はなさそう
|
60
66
|
|
61
|
-
|
67
|
+
ws = (Worksheet)wb.Sheets[wb.Sheets.Count()];
|
62
68
|
|
63
|
-
//NOTE: wb.Sheets[1]がブックの最初にあるシートなのでCountから1を引く必要はなさそう
|
64
|
-
|
65
|
-
ws = (Worksheet)wb.Sheets[wb.Sheets.Count()];
|
66
|
-
|
67
|
-
|
69
|
+
ws.Name = categoryName;
|
68
|
-
|
69
|
-
}else{
|
70
|
-
|
71
|
-
ws = (Worksheet)workbook.Worksheets[categoryName];
|
72
|
-
|
73
|
-
}
|
74
70
|
|
75
71
|
return ws;
|
76
72
|
|
2
コードの修正&名前空間を書くのが面倒なので省略
test
CHANGED
@@ -20,7 +20,7 @@
|
|
20
20
|
|
21
21
|
```C#
|
22
22
|
|
23
|
-
p
|
23
|
+
private void WriteToWorkBook(WorkBook wb ){
|
24
24
|
|
25
25
|
foreach (DataRow row in xx.xxxx)
|
26
26
|
|
@@ -30,33 +30,49 @@
|
|
30
30
|
|
31
31
|
string categoryName = "hoge"; //TODO:正しいカテゴリ名をどこかから取得する
|
32
32
|
|
33
|
-
WorkSheet ws;
|
33
|
+
WorkSheet ws = getCategorySheet(wb, categoryName);
|
34
34
|
|
35
|
-
|
36
|
-
|
37
|
-
if(抽出1が新しいカテゴリなら){
|
38
|
-
|
39
|
-
|
35
|
+
WriteToWorkSheet(ws);
|
40
|
-
|
41
|
-
//NOTE: wb.Sheets[1]がブックの最初にあるシートなのでCountから1を引く必要はなさそう
|
42
|
-
|
43
|
-
ws = (Microsoft.Office.Interop.Excel.Worksheet)wb.Sheets[wb.Sheets.Count()];
|
44
|
-
|
45
|
-
ws.Name = categoryName;
|
46
|
-
|
47
|
-
}else{
|
48
|
-
|
49
|
-
ws = (Excel.Worksheet)workbook.Worksheets[categoryName];
|
50
|
-
|
51
|
-
}
|
52
|
-
|
53
|
-
//TODO: wsにデータを書き込む処理を作成
|
54
36
|
|
55
37
|
//NOTE: Excelのプロセスが残ったままになることを防ぐため、COMオブジェクトの解放が必要
|
56
38
|
|
57
39
|
System.Runtime.InteropServices.Marshal.ReleaseComObject(ws);
|
58
40
|
|
59
41
|
}
|
42
|
+
|
43
|
+
}
|
44
|
+
|
45
|
+
|
46
|
+
|
47
|
+
private void WriteToWorkSheet(WorkSheet ws){
|
48
|
+
|
49
|
+
//TODO: wsにデータを書き込む処理を作成
|
50
|
+
|
51
|
+
}
|
52
|
+
|
53
|
+
|
54
|
+
|
55
|
+
private Worksheet GetCategorySheet(WorkBook wb, string categoryName){
|
56
|
+
|
57
|
+
WorkSheet ws;
|
58
|
+
|
59
|
+
if(抽出1が新しいカテゴリなら){
|
60
|
+
|
61
|
+
wb.Worksheets.Add();
|
62
|
+
|
63
|
+
//NOTE: wb.Sheets[1]がブックの最初にあるシートなのでCountから1を引く必要はなさそう
|
64
|
+
|
65
|
+
ws = (Worksheet)wb.Sheets[wb.Sheets.Count()];
|
66
|
+
|
67
|
+
ws.Name = categoryName;
|
68
|
+
|
69
|
+
}else{
|
70
|
+
|
71
|
+
ws = (Worksheet)workbook.Worksheets[categoryName];
|
72
|
+
|
73
|
+
}
|
74
|
+
|
75
|
+
return ws;
|
60
76
|
|
61
77
|
}
|
62
78
|
|
1
コメントの修正
test
CHANGED
@@ -28,7 +28,7 @@
|
|
28
28
|
|
29
29
|
string 抽出1 = "番号='" + row["番号"].ToString() + "'";
|
30
30
|
|
31
|
-
string
|
31
|
+
string categoryName = "hoge"; //TODO:正しいカテゴリ名をどこかから取得する
|
32
32
|
|
33
33
|
WorkSheet ws;
|
34
34
|
|
@@ -38,15 +38,15 @@
|
|
38
38
|
|
39
39
|
wb.Worksheets.Add();
|
40
40
|
|
41
|
-
//NOTE:
|
41
|
+
//NOTE: wb.Sheets[1]がブックの最初にあるシートなのでCountから1を引く必要はなさそう
|
42
42
|
|
43
43
|
ws = (Microsoft.Office.Interop.Excel.Worksheet)wb.Sheets[wb.Sheets.Count()];
|
44
44
|
|
45
|
-
ws.Name =
|
45
|
+
ws.Name = categoryName;
|
46
46
|
|
47
47
|
}else{
|
48
48
|
|
49
|
-
ws = (Excel.Worksheet)workbook.Worksheets[
|
49
|
+
ws = (Excel.Worksheet)workbook.Worksheets[categoryName];
|
50
50
|
|
51
51
|
}
|
52
52
|
|