| @@ 186-315 (lines=130) @@ | ||
| 183 | ||
| 184 | return filename |
|
| 185 | ||
| 186 | if has_energy_data_flag: |
|
| 187 | ws['B6'].font = title_font |
|
| 188 | ws['B6'] = name + ' 统计分析' |
|
| 189 | # ws['D6'].font = title_font |
|
| 190 | # ws['D6'] = '面积' +report['space']['area'] |
|
| 191 | ||
| 192 | category = reporting_period_data['names'] |
|
| 193 | ||
| 194 | # table_title |
|
| 195 | ws['B7'].fill = table_fill |
|
| 196 | ws['B7'].font = title_font |
|
| 197 | ws['B7'].alignment = c_c_alignment |
|
| 198 | ws['B7'] = '报告期' |
|
| 199 | ws['B7'].border = f_border |
|
| 200 | ||
| 201 | ws['C7'].font = title_font |
|
| 202 | ws['C7'].alignment = c_c_alignment |
|
| 203 | ws['C7'] = '算术平均数' |
|
| 204 | ws['C7'].border = f_border |
|
| 205 | ||
| 206 | ws['D7'].font = title_font |
|
| 207 | ws['D7'].alignment = c_c_alignment |
|
| 208 | ws['D7'] = '中位数' |
|
| 209 | ws['D7'].border = f_border |
|
| 210 | ||
| 211 | ws['E7'].font = title_font |
|
| 212 | ws['E7'].alignment = c_c_alignment |
|
| 213 | ws['E7'] = '最小值' |
|
| 214 | ws['E7'].border = f_border |
|
| 215 | ||
| 216 | ws['F7'].font = title_font |
|
| 217 | ws['F7'].alignment = c_c_alignment |
|
| 218 | ws['F7'] = '最大值' |
|
| 219 | ws['F7'].border = f_border |
|
| 220 | ||
| 221 | ws['G7'].font = title_font |
|
| 222 | ws['G7'].alignment = c_c_alignment |
|
| 223 | ws['G7'] = '样本标准差' |
|
| 224 | ws['G7'].border = f_border |
|
| 225 | ||
| 226 | ws['H7'].font = title_font |
|
| 227 | ws['H7'].alignment = c_c_alignment |
|
| 228 | ws['H7'] = '样本方差' |
|
| 229 | ws['H7'].border = f_border |
|
| 230 | ||
| 231 | # table_data |
|
| 232 | ||
| 233 | for i, value in enumerate(category): |
|
| 234 | row = i*2 + 8 |
|
| 235 | ws['B' + str(row)].font = name_font |
|
| 236 | ws['B' + str(row)].alignment = c_c_alignment |
|
| 237 | ws['B' + str(row)] = reporting_period_data['names'][i] + " (" + reporting_period_data['units'][i] + " )" |
|
| 238 | ws['B' + str(row)].border = f_border |
|
| 239 | ||
| 240 | ws['B' + str(row + 1)].font = name_font |
|
| 241 | ws['B' + str(row + 1)].alignment = c_c_alignment |
|
| 242 | ws['B' + str(row + 1)] = "环比" |
|
| 243 | ws['B' + str(row + 1)].border = f_border |
|
| 244 | ||
| 245 | ws['C' + str(row)].font = name_font |
|
| 246 | ws['C' + str(row)].alignment = c_c_alignment |
|
| 247 | ws['C' + str(row)] = round(reporting_period_data['means'][i], 2) \ |
|
| 248 | if reporting_period_data['means'][i] is not None else '' |
|
| 249 | ws['C' + str(row)].border = f_border |
|
| 250 | ||
| 251 | ws['C' + str(row + 1)].font = name_font |
|
| 252 | ws['C' + str(row + 1)].alignment = c_c_alignment |
|
| 253 | ws['C' + str(row + 1)] = str(round(reporting_period_data['means_increment_rate'][i] * 100, 2)) + "%" \ |
|
| 254 | if reporting_period_data['means_increment_rate'][i] is not None else '0.00%' |
|
| 255 | ws['C' + str(row + 1)].border = f_border |
|
| 256 | ||
| 257 | ws['D' + str(row)].font = name_font |
|
| 258 | ws['D' + str(row)].alignment = c_c_alignment |
|
| 259 | ws['D' + str(row)] = round(reporting_period_data['medians'][i], 2) \ |
|
| 260 | if reporting_period_data['medians'][i] is not None else '' |
|
| 261 | ws['D' + str(row)].border = f_border |
|
| 262 | ||
| 263 | ws['D' + str(row + 1)].font = name_font |
|
| 264 | ws['D' + str(row + 1)].alignment = c_c_alignment |
|
| 265 | ws['D' + str(row + 1)] = str(round(reporting_period_data['medians_increment_rate'][i] * 100, 2)) + "%" \ |
|
| 266 | if reporting_period_data['medians_increment_rate'][i] is not None else '0.00%' |
|
| 267 | ws['D' + str(row + 1)].border = f_border |
|
| 268 | ||
| 269 | ws['E' + str(row)].font = name_font |
|
| 270 | ws['E' + str(row)].alignment = c_c_alignment |
|
| 271 | ws['E' + str(row)] = round(reporting_period_data['minimums'][i], 2) \ |
|
| 272 | if reporting_period_data['minimums'][i] is not None else '' |
|
| 273 | ws['E' + str(row)].border = f_border |
|
| 274 | ||
| 275 | ws['E' + str(row + 1)].font = name_font |
|
| 276 | ws['E' + str(row + 1)].alignment = c_c_alignment |
|
| 277 | ws['E' + str(row + 1)] = str(round(reporting_period_data['minimums_increment_rate'][i] * 100, 2)) + "%" \ |
|
| 278 | if reporting_period_data['minimums_increment_rate'][i] is not None else '0.00%' |
|
| 279 | ws['E' + str(row + 1)].border = f_border |
|
| 280 | ||
| 281 | ws['F' + str(row)].font = name_font |
|
| 282 | ws['F' + str(row)].alignment = c_c_alignment |
|
| 283 | ws['F' + str(row)] = round(reporting_period_data['maximums'][i], 2) \ |
|
| 284 | if reporting_period_data['maximums'][i] is not None else '' |
|
| 285 | ws['F' + str(row)].border = f_border |
|
| 286 | ||
| 287 | ws['F' + str(row + 1)].font = name_font |
|
| 288 | ws['F' + str(row + 1)].alignment = c_c_alignment |
|
| 289 | ws['F' + str(row + 1)] = str(round(reporting_period_data['maximums_increment_rate'][i] * 100, 2)) + "%" \ |
|
| 290 | if reporting_period_data['maximums_increment_rate'][i] is not None else '0.00%' |
|
| 291 | ws['F' + str(row + 1)].border = f_border |
|
| 292 | ||
| 293 | ws['G' + str(row)].font = name_font |
|
| 294 | ws['G' + str(row)].alignment = c_c_alignment |
|
| 295 | ws['G' + str(row)] = round(reporting_period_data['stdevs'][i], 2) \ |
|
| 296 | if reporting_period_data['stdevs'][i] is not None else '' |
|
| 297 | ws['G' + str(row)].border = f_border |
|
| 298 | ||
| 299 | ws['G' + str(row + 1)].font = name_font |
|
| 300 | ws['G' + str(row + 1)].alignment = c_c_alignment |
|
| 301 | ws['G' + str(row + 1)] = str(round(reporting_period_data['stdevs_increment_rate'][i] * 100, 2)) + "%" \ |
|
| 302 | if reporting_period_data['stdevs_increment_rate'][i] is not None else '0.00%' |
|
| 303 | ws['G' + str(row + 1)].border = f_border |
|
| 304 | ||
| 305 | ws['H' + str(row)].font = name_font |
|
| 306 | ws['H' + str(row)].alignment = c_c_alignment |
|
| 307 | ws['H' + str(row)] = round(reporting_period_data['variances'][i], 2) \ |
|
| 308 | if reporting_period_data['variances'][i] is not None else '' |
|
| 309 | ws['H' + str(row)].border = f_border |
|
| 310 | ||
| 311 | ws['H' + str(row + 1)].font = name_font |
|
| 312 | ws['H' + str(row + 1)].alignment = c_c_alignment |
|
| 313 | ws['H' + str(row + 1)] = str(round(reporting_period_data['variances_increment_rate'][i] * 100, 2)) + "%" \ |
|
| 314 | if reporting_period_data['variances_increment_rate'][i] is not None else '0.00%' |
|
| 315 | ws['H' + str(row + 1)].border = f_border |
|
| 316 | ################################################# |
|
| 317 | # First: 统计分析 |
|
| 318 | # 13: title |
|
| @@ 185-311 (lines=127) @@ | ||
| 182 | ||
| 183 | return filename |
|
| 184 | ||
| 185 | if has_energy_data_flag: |
|
| 186 | ws['B5'].font = title_font |
|
| 187 | ws['B5'] = name + ' 统计分析' |
|
| 188 | ||
| 189 | category = reporting_period_data['names'] |
|
| 190 | ||
| 191 | # table_title |
|
| 192 | ws['B6'].fill = table_fill |
|
| 193 | ws['B6'].font = title_font |
|
| 194 | ws['B6'].alignment = c_c_alignment |
|
| 195 | ws['B6'] = '报告期' |
|
| 196 | ws['B6'].border = f_border |
|
| 197 | ||
| 198 | ws['C6'].font = title_font |
|
| 199 | ws['C6'].alignment = c_c_alignment |
|
| 200 | ws['C6'] = '算术平均数' |
|
| 201 | ws['C6'].border = f_border |
|
| 202 | ||
| 203 | ws['D6'].font = title_font |
|
| 204 | ws['D6'].alignment = c_c_alignment |
|
| 205 | ws['D6'] = '中位数' |
|
| 206 | ws['D6'].border = f_border |
|
| 207 | ||
| 208 | ws['E6'].font = title_font |
|
| 209 | ws['E6'].alignment = c_c_alignment |
|
| 210 | ws['E6'] = '最小值' |
|
| 211 | ws['E6'].border = f_border |
|
| 212 | ||
| 213 | ws['F6'].font = title_font |
|
| 214 | ws['F6'].alignment = c_c_alignment |
|
| 215 | ws['F6'] = '最大值' |
|
| 216 | ws['F6'].border = f_border |
|
| 217 | ||
| 218 | ws['G6'].font = title_font |
|
| 219 | ws['G6'].alignment = c_c_alignment |
|
| 220 | ws['G6'] = '样本标准差' |
|
| 221 | ws['G6'].border = f_border |
|
| 222 | ||
| 223 | ws['H6'].font = title_font |
|
| 224 | ws['H6'].alignment = c_c_alignment |
|
| 225 | ws['H6'] = '样本方差' |
|
| 226 | ws['H6'].border = f_border |
|
| 227 | ||
| 228 | # table_data |
|
| 229 | for i, value in enumerate(category): |
|
| 230 | row = i * 2 + 7 |
|
| 231 | ws['B' + str(row)].font = name_font |
|
| 232 | ws['B' + str(row)].alignment = c_c_alignment |
|
| 233 | ws['B' + str(row)] = reporting_period_data['names'][i] + " (" + reporting_period_data['units'][i] + " )" |
|
| 234 | ws['B' + str(row)].border = f_border |
|
| 235 | ||
| 236 | ws['B' + str(row + 1)].font = name_font |
|
| 237 | ws['B' + str(row + 1)].alignment = c_c_alignment |
|
| 238 | ws['B' + str(row + 1)] = "环比" |
|
| 239 | ws['B' + str(row + 1)].border = f_border |
|
| 240 | ||
| 241 | ws['C' + str(row)].font = name_font |
|
| 242 | ws['C' + str(row)].alignment = c_c_alignment |
|
| 243 | ws['C' + str(row)] = round(reporting_period_data['means'][i], 2) \ |
|
| 244 | if reporting_period_data['means'][i] is not None else '' |
|
| 245 | ws['C' + str(row)].border = f_border |
|
| 246 | ||
| 247 | ws['C' + str(row + 1)].font = name_font |
|
| 248 | ws['C' + str(row + 1)].alignment = c_c_alignment |
|
| 249 | ws['C' + str(row + 1)] = str(round(reporting_period_data['means_increment_rate'][i] * 100, 2)) + "%" \ |
|
| 250 | if reporting_period_data['means_increment_rate'][i] is not None else '0.00%' |
|
| 251 | ws['C' + str(row + 1)].border = f_border |
|
| 252 | ||
| 253 | ws['D' + str(row)].font = name_font |
|
| 254 | ws['D' + str(row)].alignment = c_c_alignment |
|
| 255 | ws['D' + str(row)] = round(reporting_period_data['medians'][i], 2) \ |
|
| 256 | if reporting_period_data['medians'][i] is not None else '' |
|
| 257 | ws['D' + str(row)].border = f_border |
|
| 258 | ||
| 259 | ws['D' + str(row + 1)].font = name_font |
|
| 260 | ws['D' + str(row + 1)].alignment = c_c_alignment |
|
| 261 | ws['D' + str(row + 1)] = str(round(reporting_period_data['medians_increment_rate'][i] * 100, 2)) + "%" \ |
|
| 262 | if reporting_period_data['medians_increment_rate'][i] is not None else '0.00%' |
|
| 263 | ws['D' + str(row + 1)].border = f_border |
|
| 264 | ||
| 265 | ws['E' + str(row)].font = name_font |
|
| 266 | ws['E' + str(row)].alignment = c_c_alignment |
|
| 267 | ws['E' + str(row)] = round(reporting_period_data['minimums'][i], 2) \ |
|
| 268 | if reporting_period_data['minimums'][i] is not None else '' |
|
| 269 | ws['E' + str(row)].border = f_border |
|
| 270 | ||
| 271 | ws['E' + str(row + 1)].font = name_font |
|
| 272 | ws['E' + str(row + 1)].alignment = c_c_alignment |
|
| 273 | ws['E' + str(row + 1)] = str(round(reporting_period_data['minimums_increment_rate'][i] * 100, 2)) + "%" \ |
|
| 274 | if reporting_period_data['minimums_increment_rate'][i] is not None else '0.00%' |
|
| 275 | ws['E' + str(row + 1)].border = f_border |
|
| 276 | ||
| 277 | ws['F' + str(row)].font = name_font |
|
| 278 | ws['F' + str(row)].alignment = c_c_alignment |
|
| 279 | ws['F' + str(row)] = round(reporting_period_data['maximums'][i], 2) \ |
|
| 280 | if reporting_period_data['maximums'][i] is not None else '' |
|
| 281 | ws['F' + str(row)].border = f_border |
|
| 282 | ||
| 283 | ws['F' + str(row + 1)].font = name_font |
|
| 284 | ws['F' + str(row + 1)].alignment = c_c_alignment |
|
| 285 | ws['F' + str(row + 1)] = str(round(reporting_period_data['maximums_increment_rate'][i] * 100, 2)) + "%" \ |
|
| 286 | if reporting_period_data['maximums_increment_rate'][i] is not None else '0.00%' |
|
| 287 | ws['F' + str(row + 1)].border = f_border |
|
| 288 | ||
| 289 | ws['G' + str(row)].font = name_font |
|
| 290 | ws['G' + str(row)].alignment = c_c_alignment |
|
| 291 | ws['G' + str(row)] = round(reporting_period_data['stdevs'][i], 2) \ |
|
| 292 | if reporting_period_data['stdevs'][i] is not None else '' |
|
| 293 | ws['G' + str(row)].border = f_border |
|
| 294 | ||
| 295 | ws['G' + str(row + 1)].font = name_font |
|
| 296 | ws['G' + str(row + 1)].alignment = c_c_alignment |
|
| 297 | ws['G' + str(row + 1)] = str(round(reporting_period_data['stdevs_increment_rate'][i] * 100, 2)) + "%" \ |
|
| 298 | if reporting_period_data['stdevs_increment_rate'][i] is not None else '0.00%' |
|
| 299 | ws['G' + str(row + 1)].border = f_border |
|
| 300 | ||
| 301 | ws['H' + str(row)].font = name_font |
|
| 302 | ws['H' + str(row)].alignment = c_c_alignment |
|
| 303 | ws['H' + str(row)] = round(reporting_period_data['variances'][i], 2) \ |
|
| 304 | if reporting_period_data['variances'][i] is not None else '' |
|
| 305 | ws['H' + str(row)].border = f_border |
|
| 306 | ||
| 307 | ws['H' + str(row + 1)].font = name_font |
|
| 308 | ws['H' + str(row + 1)].alignment = c_c_alignment |
|
| 309 | ws['H' + str(row + 1)] = str(round(reporting_period_data['variances_increment_rate'][i] * 100, 2)) + "%" \ |
|
| 310 | if reporting_period_data['variances_increment_rate'][i] is not None else '0.00%' |
|
| 311 | ws['H' + str(row + 1)].border = f_border |
|
| 312 | ||
| 313 | ################################################# |
|
| 314 | # Second: 报告期消耗 |
|