質問編集履歴

2

2019/12/10 07:10

投稿

kuronoss
kuronoss

スコア14

test CHANGED
File without changes
test CHANGED
@@ -17,3 +17,105 @@
17
17
 
18
18
 
19
19
  説明がわかりにくいかと思いますが、実現は可能でしょうか?
20
+
21
+
22
+
23
+ (2019/12/10 追記)
24
+
25
+ Javaのソースは以下になります。
26
+
27
+ また、出力されたファイルのプロパティ「EnableCalculation」を
28
+
29
+ False⇒Trueにした時にもバーコードの値が111から222に変更されます。
30
+
31
+ (元のEnableCalculationはTrue)
32
+
33
+ どうやら再計算を行えば反映されるようなのですが…。
34
+
35
+
36
+
37
+ 〜Javaのソース開始〜
38
+
39
+
40
+
41
+ // テンプレートファイル
42
+
43
+ FileInputStream filein = new FileInputStream("C:/template_test.xls");
44
+
45
+ // 出力ファイル
46
+
47
+ FileOutputStream out = new FileOutputStream("C:/test.xls");
48
+
49
+ //ワークブックを読み込み
50
+
51
+ HSSFWorkbook wb = new HSSFWorkbook(filein);
52
+
53
+ //シートを読み込み
54
+
55
+ HSSFSheet sheet = wb.getSheet("Sheet1");
56
+
57
+
58
+
59
+ for (int rowIdx = sheet.getFirstRowNum(); rowIdx <= sheet.getLastRowNum(); rowIdx++) {
60
+
61
+ HSSFRow row = sheet.getRow(rowIdx);
62
+
63
+ if (row == null) {
64
+
65
+ continue;
66
+
67
+ }
68
+
69
+
70
+
71
+ for (int colIdx = row.getFirstCellNum(); colIdx < row.getLastCellNum(); colIdx++) {
72
+
73
+ short col = Short.parseShort(String.valueOf(colIdx));
74
+
75
+ HSSFCell cell = row.getCell(col);
76
+
77
+ if (cell == null) {
78
+
79
+ continue;
80
+
81
+ }
82
+
83
+
84
+
85
+ // テンプレートファイルの111を222に変更
86
+
87
+ if(cell.getStringCellValue().equals("111")) {
88
+
89
+ cell.setCellValue("222");
90
+
91
+ }
92
+
93
+ }
94
+
95
+ }
96
+
97
+
98
+
99
+ // ファイル書き込み
100
+
101
+ wb.write(out);
102
+
103
+ // 処理をクローズ
104
+
105
+ out.close();
106
+
107
+ filein.close();
108
+
109
+
110
+
111
+ 〜Javaのソース終了〜
112
+
113
+
114
+
115
+
116
+
117
+ ファイル書き込み前に「wb.setForceFormulaRecalculation(true);」とか
118
+
119
+ 「sheet.setForceFormulaRecalculation(true);」とかで再計算すれば反映されそうですが、
120
+
121
+ 現在のPOIのバージョンが古いのかsetForceFormulaRecalculationメソッドが存在しません…。

1

2019/12/10 07:09

投稿

kuronoss
kuronoss

スコア14

test CHANGED
File without changes
test CHANGED
@@ -16,4 +16,4 @@
16
16
 
17
17
 
18
18
 
19
- 説明がわかりにくいかと思いますが、実現は可能でしょうか
19
+ 説明がわかりにくいかと思いますが、実現は可能でしょうか