编写软件的过程

编写软件的过程

2022/2/23

和胡振宇讨论了一下这个软件的大体内容,已经编写这个软件需求分析

大致的步奏

  • 上传数据
  • 数据分析
  • 生成文档

要求

  • 数据库设置限制,有管理员能够修改数据
  • 用户只需要填写表格 以及获得生成的最终表格 过程中的表格要管理员看

问题

  • 是填写数据还是上传有格式的文档(填写一到表5)
  • 生成表格是直接生成还是有一段时间后生成(自动封锁24h)
  • 表格生成给谁?
  • 这些表格之间的关系

时间要求

今年年底

2022/2/24

了解了一下Excel的读方法

Excel的读取方法不同于正常的文件的读写,需要导入阿帕奇的poi的包

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<dependencies>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>5.2.0</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>5.2.0</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml-schemas</artifactId>
<version>4.1.2</version>
</dependency>
</dependencies>

这边我做了一个简单的读取Excel文件的方法(这里是以.xlsx为尾缀的)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
package com.dwx.file;


import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

import java.io.File;
import java.io.FileInputStream;

public class ReadExlse {
public static void main(String[] args) throws Exception {

//正常的文件类File无法读取Excel文件,需要使用Apache的包
//Excel的全路径
String path = "E:\\java\\filetest\\src\\main\\java\\com\\dwx\\file\\test.xlsx";
File file = new File(path);
System.out.println(file.isFile());
//对文件进行操作 将文件转化成流
FileInputStream stream = new FileInputStream(file);
//对这个文件流进行操作
//创建这个Excel的对象
XSSFWorkbook sheets = new XSSFWorkbook(stream);

//获取全部的sheets数
int numberOfSheets = sheets.getNumberOfSheets();
System.out.println("================================================");
System.out.println("此文件的所有表格数为:"+numberOfSheets);
System.out.println("================================================");
for (int k=0;k<numberOfSheets;k++) {
System.out.println("这是第"+(k+1)+"个表格");
XSSFSheet sheetAt = sheets.getSheetAt(k);

int firstRowNum = sheetAt.getFirstRowNum();
int lastRowNum = sheetAt.getLastRowNum();
System.out.println(firstRowNum);
System.out.println(lastRowNum);

for (int i = firstRowNum; i <= lastRowNum; i++) {
XSSFRow row = sheetAt.getRow(i);
if (row==null){
System.out.println(" ");
continue;
}

short lastCellNum = row.getLastCellNum();
short firstCellNum = row.getFirstCellNum();
if (lastCellNum < 0 || firstCellNum < 0){
continue;
}

for (int j = firstCellNum; j <= lastCellNum; j++) {
XSSFCell cell = row.getCell(j);
System.out.print(cell + "\t");
}
System.out.println();
}
}
//关闭流
sheets.close();
stream.close();

}
}

了解了一下Excel的写的方法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
package com.dwx.file;

import org.apache.poi.xssf.usermodel.*;


import java.io.FileOutputStream;
import java.io.IOException;

public class WriteExlse {
//这个程序是一个写Excel的程序 面向的尾缀也是xlsx
public static void main(String[] args) throws IOException {
String fileName = "C:\\Users\\Lenovo\\Desktop\\监审软件编译"+"\\MyExlse"+".xlsx";
String sheetName = "sheet01";

//设置一个sheets
XSSFWorkbook sheets = new XSSFWorkbook();
//设置第一个表的表格
//设置第一个表的row数目
int firstRowNumber = 0;
int lastRowNumber = 10;
int firstCellNumber = 0;
int lastCellNumber = 5;
//一个整个Excel文件创建一个表
XSSFSheet sheet = sheets.createSheet(sheetName);
XSSFRow xssfRow;
XSSFCell xssfCell;

for (int i=firstRowNumber;i<lastRowNumber;i++){

//表给某一行设置一个行
XSSFRow row = sheet.createRow(i);

for (int j=firstCellNumber;j<lastCellNumber;j++){
//对这个行设置更多的cell(小室)
XSSFCell cell = row.createCell(j);
//给这个cell(小室)设置值
cell.setCellValue("test");
}


}
//编写一个输出流
FileOutputStream stream = new FileOutputStream(fileName);
//把流写出去 一个sheets Excel表写出去
sheets.write(stream);


}
}

2022/2/26

分析了数据库怎么建:选择创建链表的形式创建数据库

对用户的需求进行分析

2022/2/27

分析了应该去创建一个网站 我自己负责表格的编写工作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
package com.dwx.file;

import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

public class minban_fengmian {
public XSSFSheet setminban_fengmain(XSSFWorkbook sheets){


//设置民办封面
//创建一个sheet
XSSFSheet sheet = sheets.createSheet("封面");
//封面的第一行是空着的
int i;
XSSFRow xssfRow;
XSSFCell xssfCell;
// 申请第一行 行和列都是从零开始的
XSSFRow row = sheet.createRow(0);
CellRangeAddress cellAddresses1 = new CellRangeAddress(0, 0, 0, 1);
sheet.addMergedRegion(cellAddresses1);
//第一行是四个cell
for ( i = 0;i<4;i++){
XSSFCell cell = row.createCell(i);
//第一行都是空着的 因此我们也把这个值设成空值
cell.setCellValue("");
}

//下边编写第二行
//第二行只用一列
//设置单元格的合并
CellRangeAddress cellAddresses = new CellRangeAddress(1, 1, 0, 5);
sheet.addMergedRegion(cellAddresses);
XSSFRow row1 = sheet.createRow(1);
XSSFCell cell = row1.createCell(0);
cell.setCellValue("新乡市民办学校教育定价成本监审表");

//第三行是一个空格行
CellRangeAddress cellAddresses2 = new CellRangeAddress(2, 2, 0, 5);
sheet.addMergedRegion(cellAddresses2);
XSSFRow row2 = sheet.createRow(2);
XSSFCell cell1 = row2.createCell(0);
cell1.setCellValue("");
//为第五后的合并单元格
for (i=3;i<=11;i++){
CellRangeAddress cellAddresses4 = new CellRangeAddress(i, i, 2, 4);
sheet.addMergedRegion(cellAddresses4);
}
//第五航到第12行
String[] name = new String[]{"学 校 名 称","法 定人 代 表","学 校 地 址","邮 政 编 码","财务负责人","填 表 人","电 话 ","邮 箱","传 真 "};
for (i = 3;i<=11; i++){
XSSFRow row4 = sheet.createRow(i);
XSSFCell cell4 = row4.createCell(1);
cell4.setCellValue(name[i-3]);

}
//第十三行是空格行
sheet.createRow(12);
//第十四行
XSSFRow row3 = sheet.createRow(13);
XSSFCell cell2 = row3.createCell(3);
cell2.setCellValue("学校盖章");
CellRangeAddress cellAddresses3 = new CellRangeAddress(13, 13, 3, 4);
sheet.addMergedRegion(cellAddresses3);
//第十五行

XSSFRow row4 = sheet.createRow(14);
XSSFCell cell3 = row4.createCell(3);
cell3.setCellValue(" 年");

XSSFCell cell4 = row4.createCell(4);
cell4.setCellValue(" 月 日");

//一下是对表格的宽度等的优化

//设置列宽

sheet.setColumnWidth(0, 258*23+184);
sheet.setColumnWidth(1, 258*23+184);
sheet.setColumnWidth(3, 258*13+184);
sheet.setColumnWidth(4, 258*13+184);
sheet.setColumnWidth(5, 258*28+184);

//设置行高
sheet.setDefaultRowHeight((short) 456);




return sheet;
}
}

生成的第一个目标Excel,编写的格式和列宽和行高需要以后在改

2022/2/28

编写民办的第三张表 编写表的过程越来越快 现在平均2h能编好一张表

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
package com.dwx.file;

import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

public class minban_biaoyi {
public XSSFSheet setSheet(XSSFWorkbook sheets){

String sheetName = "基本情况表1";
XSSFSheet sheet = sheets.createSheet(sheetName);


//编写第一行的内容
XSSFRow row = sheet.createRow(0);
XSSFCell cell = row.createCell(0);
cell.setCellValue("表:一");

//编写第二行的内容
//第二行是从A到L有一个合并单元格
CellRangeAddress cellAddresses = new CellRangeAddress(1, 1, 0, 11);
sheet.addMergedRegion(cellAddresses);
XSSFRow row1 = sheet.createRow(1);
XSSFCell cell1 = row1.createCell(0);

cell1.setCellValue("XXX学校教育定价成本监审学生人数调查表");
//第三行也是一个大的合并单元格
CellRangeAddress cellAddresses2 = new CellRangeAddress(2, 2, 0, 11);
sheet.addMergedRegion(cellAddresses2);
XSSFRow row2 = sheet.createRow(2);
XSSFCell cell2 = row2.createCell(0);

cell2.setCellValue("学校名称:(盖章)");
//第四五行有一个不规律的合并单元格
CellRangeAddress cellAddresses1 = new CellRangeAddress(3, 4, 0, 0);
CellRangeAddress cellAddresses6 = new CellRangeAddress(3, 4, 1, 1);
CellRangeAddress cellAddresses3 = new CellRangeAddress(3, 4, 8, 8);
CellRangeAddress cellAddresses4 = new CellRangeAddress(3, 4, 9, 9);
CellRangeAddress cellAddresses5 = new CellRangeAddress(3, 4, 10, 10);
CellRangeAddress cellAddresses7 = new CellRangeAddress(3, 4, 11, 11);
sheet.addMergedRegion(cellAddresses1);
sheet.addMergedRegion(cellAddresses6);
sheet.addMergedRegion(cellAddresses3);
sheet.addMergedRegion(cellAddresses4);
sheet.addMergedRegion(cellAddresses5);
sheet.addMergedRegion(cellAddresses7);
//又有一系列小的横向合并
for (int i=2;i<8;i=i+2){
CellRangeAddress cellAddresses8 = new CellRangeAddress(3, 3, i, i + 1);
sheet.addMergedRegion(cellAddresses8);
}
//给第4、5行填值

XSSFRow row3 = sheet.createRow(3);
row3.createCell(0).setCellValue("项 目");
row3.createCell(1).setCellValue("栏次及关系");
row3.createCell(8).setCellValue("总监审数");
row3.createCell(9).setCellValue("教育生均监审数");
row3.createCell(10).setCellValue("住宿生均监审数");
row3.createCell(11).setCellValue("备注");
row3.createCell(2).setCellValue("2019年");
row3.createCell(4).setCellValue("2020年");
row3.createCell(6).setCellValue("2021年");

XSSFRow row4 = sheet.createRow(4);
for (int j = 2;j<=7;j++){
if (j%2 == 0){
row4.createCell(j).setCellValue("申报数");
}else {
row4.createCell(j).setCellValue("核定数");
}
}

//对于表二 固定的值为两个列
//使用数组的思路进行存值
String[] list1 = new String[]{
"一、规模班数" ,
"小学" ,
"初中" ,
"高中" ,
"二、班人数" ,
"小学(人/班" ,
"初中(人/班" ,
"高中(人/班" ,
"三、规模人数" ,
"小学" ,
"初中" ,
"高中" ,
"四、实际班级数(个)" ,
"小学" ,
"初中" ,
"高中" ,
"五、实际在校平均标准学生数" ,
"(一)小学标准学生数" ,
"其中:年初学生数" ,
" 年末学生数" ,
"(二)初中标准学生数" ,
"其中:年初学生数" ,
" 年末学生数" ,
"(三)高中标准学生数" ,
"其中:年初学生数" ,
" 年末学生数" ,
"六、实际在校平均住宿标准学生数" ,
"(一)小学标准住宿学生数" ,
"其中:年初学生数" ,
" 年末学生数" ,
"(二)初中标准住宿学生数" ,
"其中:年初学生数" ,
" 年末学生数" ,
"(三)高中标准住宿学生数" ,
"其中:年初学生数" ,
" 年末学生数"
};
int listLength,b;
//
listLength = list1.length;
for (b=0;b<listLength;b++){
XSSFRow row5 = sheet.createRow(b+5);
row5.createCell(0).setCellValue(list1[b]);
row5.createCell(1).setCellValue(b+1);

}

//填充L列备注的填充
//L列有几个单元格的合并
sheet.addMergedRegion(new CellRangeAddress(6,8,11,11));
sheet.addMergedRegion(new CellRangeAddress(10,12,11,11));
sheet.addMergedRegion(new CellRangeAddress(14,16,11,11));
sheet.addMergedRegion(new CellRangeAddress(18,20,11,11));
sheet.addMergedRegion(new CellRangeAddress(22,30,11,11));
sheet.addMergedRegion(new CellRangeAddress(32,40,11,11));

//给备注填值

int [] rowNumber = new int[]{5,6,9,10,14,18,22,32};

String[] rowValue = new String[]{
"建校时可容纳班级数" ,
"2019-2020年填写“双减”前规模数;2021年按“双减”后规模数填写。" ,
"建校时每班人数" ,
"2019-2020年填写“双减”前规模数;2021年按“双减”后规模数填写。" ,
"规模人数=规模班数X班级人数" ,
"纸质说明每个年级多少个班?" ,
"按实际在校学生人数填写,或按三年学籍人数纸质上报。",
"按实际在校住宿学生人数填写。"
};
for (int o=0;o<=7;o++){
sheet.getRow(rowNumber[o]).createCell(11).setCellValue(rowValue[o]);
}

//内容填充部分已经全部填写完毕 开始设置表格的列宽
sheet.setColumnWidth(0,258*36+184);
sheet.setColumnWidth(1,258*22+184);
sheet.setColumnWidth(11,258*66+184);



return sheet;
}
}

我思考了一下问题,我可以通过添加一个set方法,来实现给每一张表中的数据进行填值

2022/3/1

编写了民办表基本情况表二

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
package com.dwx.file;

import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

public class minban_biaoer {

public XSSFSheet setSheet(XSSFWorkbook sheets){

//创建子表格 并且给其附上名字
String sheetName = "基本情况表2";
XSSFSheet sheet = sheets.createSheet(sheetName);


//编写第一行的内容
XSSFRow row = sheet.createRow(0);
XSSFCell cell = row.createCell(0);
cell.setCellValue("表:二");

//编写第二行的内容
//第二行是从A到L有一个合并单元格
CellRangeAddress cellAddresses = new CellRangeAddress(1, 1, 0, 11);
sheet.addMergedRegion(cellAddresses);
XSSFRow row1 = sheet.createRow(1);
XSSFCell cell1 = row1.createCell(0);

cell1.setCellValue("新乡市民办学校教育定价成本监审其它情况调查表");
//第三行也是一个大的合并单元格
CellRangeAddress cellAddresses2 = new CellRangeAddress(2, 2, 0, 11);
sheet.addMergedRegion(cellAddresses2);
XSSFRow row2 = sheet.createRow(2);
XSSFCell cell2 = row2.createCell(0);

cell2.setCellValue("学校名称:(盖章) 单位:人");

//第四五行有一个不规律的合并单元格
CellRangeAddress cellAddresses1 = new CellRangeAddress(3, 4, 0, 0);
CellRangeAddress cellAddresses6 = new CellRangeAddress(3, 4, 1, 1);
CellRangeAddress cellAddresses3 = new CellRangeAddress(3, 4, 8, 8);
CellRangeAddress cellAddresses4 = new CellRangeAddress(3, 4, 9, 9);
CellRangeAddress cellAddresses5 = new CellRangeAddress(3, 4, 10, 10);
CellRangeAddress cellAddresses7 = new CellRangeAddress(3, 4, 11, 11);
sheet.addMergedRegion(cellAddresses1);
sheet.addMergedRegion(cellAddresses6);
sheet.addMergedRegion(cellAddresses3);
sheet.addMergedRegion(cellAddresses4);
sheet.addMergedRegion(cellAddresses5);
sheet.addMergedRegion(cellAddresses7);
//又有一系列小的横向合并
for (int i=2;i<8;i=i+2){
CellRangeAddress cellAddresses8 = new CellRangeAddress(3, 3, i, i + 1);
sheet.addMergedRegion(cellAddresses8);
}
//给第4、5行填值

XSSFRow row3 = sheet.createRow(3);
row3.createCell(0).setCellValue("项 目");
row3.createCell(1).setCellValue("栏次及关系");
row3.createCell(8).setCellValue("总监审数");
row3.createCell(9).setCellValue("教育生均监审数");
row3.createCell(10).setCellValue("住宿生均监审数");
row3.createCell(11).setCellValue("备注");
row3.createCell(2).setCellValue("2019年");
row3.createCell(4).setCellValue("2020年");
row3.createCell(6).setCellValue("2021年");

XSSFRow row4 = sheet.createRow(4);
for (int j = 2;j<=7;j++){
if (j%2 == 0){
row4.createCell(j).setCellValue("申报数");
}else {
row4.createCell(j).setCellValue("核定数");
}
}

String[] listC1 = new String[]{
"一、教职工总数" ,
"(一)行政管理人数 " ,
"(二)小学教师人员数" ,
"(三)初中教师人员数" ,
"(四)高中教师人员数" ,
"(五)宿管人员数" ,
"(六)餐厅人员数" ,
"(七)其他辅助人员数" ,
"(八)临时人员 " ,
"二、总建筑面积" ,
"(一)教学建筑面积" ,
"小学" ,
"初中" ,
"高中" ,
"共用建筑面积" ,
"(二)住宿面积" ,
"小学" ,
"初中" ,
"高中" ,
"(三)餐厅面积" ,
"三、年收入" ,
"学费收入" ,
"餐厅收入" ,
"其它收入",
"四、现执行收费标准"
};
String[] listC10 = new String[]{
"" ,
"指校长、学生科、教导处、会计室、维修人员等",
"" ,
"" ,
"" ,
"" ,
"" ,
"保洁、保安和其它人员" ,
"低质说明从事什么岗位,工资如何发放。" ,
"" ,
"" ,
"" ,
"" ,
"" ,
"指大门、厕所等共用设施" ,
"" ,
"" ,
"" ,
"" ,
"" ,
"" ,
"" ,
"" ,
"" ,
"单位:元/生.年"
};
int listC1Length = listC1.length;
int i;
for (i=0;i<listC1Length;i++){
XSSFRow row5 = sheet.createRow(i + 5);
row5.createCell(0).setCellValue(listC1[i]);
row5.createCell(1).setCellValue(i+1);
row5.createCell(11).setCellValue(listC10[i]);
}

//内容填充部分已经全部填写完毕 开始设置表格的列宽
sheet.setColumnWidth(0,258*36+184);
sheet.setColumnWidth(1,258*22+184);
sheet.setColumnWidth(11,258*66+184);


return sheet;
}
}

表三编写成功

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
package com.dwx.file;

import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

public class minban_biaosan {

public XSSFSheet setSheet(XSSFWorkbook sheets){

//创建的子表格的名字
String sheetName = "三年审计报告表3";
XSSFSheet sheet = sheets.createSheet(sheetName);

//编写第一行的内容
XSSFRow row = sheet.createRow(0);
XSSFCell cell = row.createCell(0);
cell.setCellValue("表三");
//编写第二行的内容
//第二行是从A到L有一个合并单元格
CellRangeAddress cellAddresses = new CellRangeAddress(1, 1, 0, 10);
sheet.addMergedRegion(cellAddresses);
XSSFRow row1 = sheet.createRow(1);
XSSFCell cell1 = row1.createCell(0);

cell1.setCellValue("新乡市xxx学校审计数基本情况表");

//第四五行有一个不规律的合并单元格
CellRangeAddress cellAddresses1 = new CellRangeAddress(2, 3, 0, 0);
CellRangeAddress cellAddresses2 = new CellRangeAddress(2, 3, 10, 10);
sheet.addMergedRegion(cellAddresses1);
sheet.addMergedRegion(cellAddresses2);

//又有一系列小的横向合并
for (int i=1;i<=9;i=i+3){
CellRangeAddress cellAddresses8 = new CellRangeAddress(2, 2, i, i + 2);
sheet.addMergedRegion(cellAddresses8);
}
//给第4、5行填值

XSSFRow row3 = sheet.createRow(2);
row3.createCell(0).setCellValue("");
row3.createCell(1).setCellValue(2019);
row3.createCell(4).setCellValue(2020);
row3.createCell(7).setCellValue(2021);



XSSFRow row2 = sheet.createRow(3);
for (int j = 1;j<=9;j++){
if (j%3 == 0){
row2.createCell(j).setCellValue("申报数");
}else if (j%3 == 2){
row2.createCell(j).setCellValue("核增核减数");
}else {
row2.createCell(j).setCellValue("审计数");
}
}
row3.createCell(10).setCellValue("备注");


//第一列的所有数据
String[] listC1 = new String[]{
"一、人员支出" ,
"1、行政和其它人员" ,
"2、教师" ,
"3、宿管人员" ,
"4、社会保障费" ,
"5、福利费" ,
"(一)小学人员支出",
"1、行政和其它人员" ,
"2、教师",
"3、宿管人员" ,
"4、社会保障费" ,
"5、福利费" ,
"(二)初中人员支出" ,
"1、行政和其它人员" ,
"2、教师" ,
"3、宿管人员" ,
"4、社会保障费" ,
"5、福利费" ,
"(三)高中人员支出" ,
"1、行政和其它人员" ,
"2、教师" ,
"3、宿管人员" ,
"4、社会保障费" ,
"5、福利费" ,
"二、租赁费" ,
"(一)小学租赁费" ,
"小学教学" ,
"小学住宿" ,
"(二)初中租赁费" ,
"初中教学" ,
"初中住宿" ,
"(三)高中租赁费" ,
"高中教学" ,
"高中住宿" ,
"三、财务费用" ,
"(一)小学财务费用" ,
"小学教学" ,
"小学住宿" ,
"(二)初中财务费用" ,
"初中教学" ,
"初中住宿" ,
"(三)高中财务费用" , "高中教学\n" ,
"高中住宿" ,
"四、公用支出" ,
"1、办公费" ,
"2、水电费" ,
"3、维修费" ,
"4、职工教育经费" ,
"5、工会经费" ,
"6、招待费" ,
"7、交通费" ,
"8、" ,
"9、" ,
"10、" ,
"11、" ,
"12、" ,
"13、" ,
"14、" ,
"15、其它费用" ,
"五、合计" ,
"六、固定资产原值"
};
int listNumber = listC1.length;
int i ;
for (i=0;i<listNumber;i++){
XSSFRow row5 = sheet.createRow(i + 4);
row5.createCell(0).setCellValue(listC1[i]);
}

//设置第K列的数据 K列有很多的合并单元格先合并单元格
int[] list1 = new int[]{10,29,39,48};
int[] list2 = new int[]{17,8,8,15};
for (int j = 0;j<4;j++){
CellRangeAddress cellAddresses3 = new CellRangeAddress(list1[j],list1[j]+list2[j], 10, 10);
sheet.addMergedRegion(cellAddresses3);
}
//为底k列设值
int[] list3 = new int[]{10,28,29,38,39,48,64,65};
//设置值
String[] listK = new String[]{
"提供2021全体人员工资发放表" ,
"提供三年租赁合同" ,
"按建筑面积比或学生比分摊" ,
"提供金融机构贷款合同" ,
"按建筑面积比或学生比分摊" ,
"根据审计报告科目,可增加科目或另行加行。" ,
"和审计报告数是否一致?" ,
"和审计报告数一致"
};
for (i = 0;i<=7;i++){
sheet.getRow(list3[i]).createCell(10).setCellValue(listK[i]);

}
//设置表格宽
sheet.setColumnWidth(0,256*32+184);
sheet.setColumnWidth(10,256*30+184);



return sheet;
}
}

表四编写成功

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
package com.dwx.file;

import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

public class minban_biaosi {
public XSSFSheet setSheet(XSSFWorkbook sheets){
String sheetName = "固定资产表4";
XSSFSheet sheet = sheets.createSheet(sheetName);
//编写第一行
//编写第一行的内容
XSSFRow row = sheet.createRow(0);
XSSFCell cell = row.createCell(0);
cell.setCellValue("表四");
//编写第二行的内容
//第二行是从A到L有一个合并单元格
CellRangeAddress cellAddresses = new CellRangeAddress(1, 1, 0, 10);
sheet.addMergedRegion(cellAddresses);
XSSFRow row1 = sheet.createRow(1);
XSSFCell cell1 = row1.createCell(0);

cell1.setCellValue("XXX学校2021年度固定资产折旧核定表");
//第三行是从A到L有一个合并单元格
CellRangeAddress cellAddresses1 = new CellRangeAddress(2, 2, 0, 10);
sheet.addMergedRegion(cellAddresses1);
XSSFRow row2 = sheet.createRow(2);
XSSFCell cell2 = row2.createCell(0);

cell2.setCellValue("单位名称:(盖章) 残值率:3% 单位:元");

//编写第四行的内容
String[] list4 = new String[]{"项 目","栏次及关系","原值","教学原值","公用支出核转","宿舍原值","餐厅原值","折旧年限","教学年折旧","宿舍年折旧","备注"};
//给第四行填值
XSSFRow row3 = sheet.createRow(3);
for (int i = 0 ; i < 11;i++) {
row3.createCell(i).setCellValue(list4[i]);
}

//第一列是一个有规律的列 给其添值
String[] list5 = new String[]{"一、房屋建筑物",
"1、钢结构混凝土结构" ,
"2、砖混结构" ,
"3、房屋附属物和构筑物" ,
"二、通用设备" ,
"三、专用设备" ,
"四、家具" ,
"五、土地" ,
"六、合计" ,
"七、预增固定资产",
"八、合计"};
for (int j = 0;j <=10;j++){
sheet.createRow(j+4).createCell(0).setCellValue(list5[j]);
sheet.getRow(j+4).createCell(1).setCellValue(j+1);
}
sheet.getRow(11).createCell(10).setCellValue("购地合同");
sheet.getRow(12).createCell(10).setCellValue("C13和审计报告数是否一致?");

//创建倒数第二行 一个大的合并
CellRangeAddress cellAddresses2 = new CellRangeAddress(15, 15, 0, 10);
CellRangeAddress cellAddresses3 = new CellRangeAddress(16, 16, 2, 6);
sheet.addMergedRegion(cellAddresses2);
sheet.addMergedRegion(cellAddresses3);
//设值
sheet.createRow(15).createCell(0).setCellValue("1、通用设备包括计算机、网络设备、安全设备、终端设备、存储设备、电话机、传真机、复印机、投影仪、多功能一体机、车辆、音像设备、电子白板、LED显示屏、触控一体机、图书等;2、专用设备包括电梯、制冷空调、锅炉、空气能、后续安装的电机、变压器、电源设备、直饮供水设备、乐器、舞台设备、多功能厅设备、田径设备、球类设备、体育运动辅助设备等。");
sheet.createRow(16).createCell(2).setCellValue("填表说明:加黄线的不要填写,更不要更改公式");

//设置表格宽度
sheet.setColumnWidth(0,256*32+184);
sheet.setColumnWidth(10,256*35+184);



return sheet;
}
}

表五编写成功

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
package com.dwx.file;

import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

public class minban_biaowu {
public XSSFSheet setSheet(XSSFWorkbook sheets){
String sheetName = "三年账册相关科目表5";
XSSFSheet sheet = sheets.createSheet(sheetName);
//编写第一行
//编写第一行的内容
XSSFRow row = sheet.createRow(0);
XSSFCell cell = row.createCell(0);
cell.setCellValue("表五");
//第二行是从A到L有一个合并单元格
CellRangeAddress cellAddresses = new CellRangeAddress(1, 1, 0, 10);
sheet.addMergedRegion(cellAddresses);
XSSFRow row1 = sheet.createRow(1);
XSSFCell cell1 = row1.createCell(0);

cell1.setCellValue("新乡市xxx学校账册基本情况调查表");
//第三行是从A到L有一个合并单元格

//第思维航的第一个合并列
sheet.addMergedRegion(new CellRangeAddress(2,3,0,0));
//又有一系列小的横向合并
for (int i=0;i<=6;i=i+3){
CellRangeAddress cellAddresses1 = new CellRangeAddress(2, 2, i+1, i+3);
sheet.addMergedRegion(cellAddresses1);
}
//添值
sheet.createRow(2).createCell(0).setCellValue("科目");
sheet.getRow(2).createCell(1).setCellValue("2019年");
sheet.getRow(2).createCell(4).setCellValue("2020年");
sheet.getRow(2).createCell(7).setCellValue("2021年");
XSSFRow row4 = sheet.createRow(3);
for (int j = 1;j<=9;j++){
if (j%3 == 0){
row4.createCell(j).setCellValue("凭证类型");
}else if (j%3 == 2){
row4.createCell(j).setCellValue("账册号");
}else {
row4.createCell(j).setCellValue("金额");
}
}

row4.createCell(10).setCellValue("备注");

//对第一列进行添值
String[] listC1 = new String[]{
"一、维修费" ,
"1、" ,
"2、" ,
"3、" ,
"4、" ,
"5、" ,
"二、低值易耗品" ,
"1、" ,
"2、" ,
"3、" ,
"4、" ,
"5、" ,
"三、其它支出" ,
"1、" ,
"2、" ,
"3、" ,
"4、" ,
"5、" ,
"四、财务费用" ,
"1、" ,
"2、" ,
"3、" ,
"4、" ,
"5、"
};
int i = 0;
for (i = 0;i<=23;i++){
sheet.createRow(i+4).createCell(0).setCellValue(listC1[i]);
}
//备注行有很多的合并单元格 这些单元格的合并都是五行
int[] list1 = new int[]{4,10,16,22};
String[] list2 = new String[]{
"1、统计大于该科目金额20%的明细。2、凭证类型填写发票、合同(协议)、白条(收据)" ,

"1、统计大于该科目金额20%的明细。2、凭证类型填写发票、合同(协议)、白条(收据)" ,

"1、如果金额大于公用支出20%,请按内容分类。 如果金额小于公用支出20%,不填写。2、凭证类型填写发票、合同(协议)、白条(收据)" ,

"1、统计还款利息。2、凭证类型填写发票、合同(协议)、白条(收据)."


};
for (i = 0;i<=3;i++){
sheet.addMergedRegion(new CellRangeAddress(list1[i],list1[i]+5,10,10));
sheet.getRow(list1[i]).createCell(10).setCellValue(list2[i]);
}

//设置列表的行宽

sheet.setColumnWidth(0,256*17+184);
sheet.setColumnWidth(10,256*66+184);



return sheet;
}
}

2022/3/2

民办表编写结束

教育参数表

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
package com.dwx.file;

import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

public class minban_jiaoyuhesuanbiao {

public XSSFSheet setSheet(XSSFWorkbook sheets){
String sheetName = "教育核定表";
int i,j;

XSSFSheet sheet = sheets.createSheet(sheetName);

//对第一行进行合并单元格
sheet.addMergedRegion(new CellRangeAddress(0,0,0,4));
sheet.addMergedRegion(new CellRangeAddress(1,1,0,4));
//给第一、二行添值
sheet.createRow(0).createCell(0).setCellValue("表一");
sheet.createRow(1).createCell(0).setCellValue("XXX学校2021年度教育培养、住宿成本生均核定表");
//给第一列添值
String[] list1 = new String[]{
"项目" ,
"一、基本情况" ,
"(一)标准学生数" ,
"1、小学" ,
"2、初中" ,
"3、高中" ,
"(二)教职工" ,
"1、小学" ,
"2、初中" ,
"3、高中" ,
"(三)占地面积" ,
"(四)建筑面积" ,
"二、成本构成" ,
"(一)人员支出" ,
"1、小学" ,
"2、初中" ,
"3、高中" ,
"(二)租赁费" ,
"1、小学" ,
"2、初中" ,
"3、高中" ,
"(三)财务费用" ,
"1、小学" ,
"2、初中" ,
"3、高中" ,
"(四)商品和服务支出" ,
"(五)固定资产折旧" ,
"三、生均成本"
};
int listLength = list1.length;
for (i = 0;i<listLength;i++){
sheet.createRow(i+2).createCell(0).setCellValue(list1[i]);
}
sheet.getRow(2).createCell(1).setCellValue("申报数");
sheet.getRow(2).createCell(2).setCellValue("核定数");
sheet.getRow(2).createCell(3).setCellValue("教育成本核定数");
sheet.getRow(2).createCell(4).setCellValue("住宿成本核定数");

//调整列表的宽
sheet.setColumnWidth(0,256*33+184);


return sheet;
}
}

成分分析表

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
package com.dwx.file;

import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

public class minban_chengfenfenxibiao {

public XSSFSheet setSheet(XSSFWorkbook sheets){

String sheetName = "成本分析表";
XSSFSheet sheet = sheets.createSheet(sheetName);
int i,j;

sheet.addMergedRegion(new CellRangeAddress(1,1,0,6));
sheet.createRow(1).createCell(0).setCellValue("新乡市xxx学校成本分析表");
//老朋友 一系列合并单元格
sheet.addMergedRegion(new CellRangeAddress(2,3,0,0));
sheet.addMergedRegion(new CellRangeAddress(2,3,1,1));
sheet.addMergedRegion(new CellRangeAddress(2,3,2,2));
sheet.addMergedRegion(new CellRangeAddress(2,3,3,3));

//给合并过的单元格设值
XSSFRow row = sheet.createRow(2);
row.createCell(0).setCellValue("");
row.createCell(1).setCellValue("成本核算结果");
row.createCell(2).setCellValue("项目占比");
row.createCell(3).setCellValue("公充值");
row.createCell(4).setCellValue("是否合理");
row.createCell(6).setCellValue("备注");
XSSFRow row1 = sheet.createRow(3);
row1.createCell(4).setCellValue("下限");
row1.createCell(5).setCellValue("上限");


sheet.addMergedRegion(new CellRangeAddress(2,2,4,5));

String[] list = new String[]{
"一、人员支出" ,
"1、小学" ,
"2、初中" ,
"3、高中" ,
"二、租赁费" ,
"1、小学" ,
"2、初中" ,
"3、高中" ,
"三、财务费用" ,
"1、小学" ,
"2、初中" ,
"3、高中" ,
"四、商品和服务支出" ,
"1、小学" ,
"2、初中" ,
"3、高中" ,
"五、固定资产折旧" ,
"1、小学" ,
"2、初中" ,
"3、高中" ,
"六、成本合计" ,
"1、小学" ,
"2、初中" ,
"3、高中"
};
int listLength = list.length;
for (i=0;i<listLength;i++){
sheet.createRow(i+4).createCell(0).setCellValue(list[i]);
}
sheet.getRow(5).createCell(3).setCellValue("0.65-0.75");
sheet.getRow(6).createCell(3).setCellValue("0.65-0.75");
sheet.getRow(7).createCell(3).setCellValue("0.65-0.75");


sheet.getRow(9).createCell(3).setCellValue("0.08-0.12");
sheet.getRow(10).createCell(3).setCellValue("0.08-0.12");
sheet.getRow(11).createCell(3).setCellValue("0.08-0.12");


sheet.getRow(13).createCell(3).setCellValue("0.01-0.05");
sheet.getRow(14).createCell(3).setCellValue("0.01-0.05");
sheet.getRow(15).createCell(3).setCellValue("0.01-0.05");

sheet.getRow(17).createCell(3).setCellValue("0.10-0.20");
sheet.getRow(18).createCell(3).setCellValue("0.10-0.20");
sheet.getRow(19).createCell(3).setCellValue("0.10-0.20");

sheet.getRow(21).createCell(3).setCellValue("0.08-0.15");
sheet.getRow(22).createCell(3).setCellValue("0.08-0.15");
sheet.getRow(23).createCell(3).setCellValue("0.08-0.15");
//设置表的列宽
sheet.setColumnWidth(0,256*23+184);
sheet.setColumnWidth(1,256*23+184);
sheet.setColumnWidth(2,256*23+184);
sheet.setColumnWidth(4,256*23+184);
sheet.setColumnWidth(5,256*23+184);
sheet.setColumnWidth(3,256*17+184);



return sheet;
}
}

教育核算表

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
package com.dwx.file;

import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

public class minban_jiaoyuhesuanbiao {

public XSSFSheet setSheet(XSSFWorkbook sheets){
String sheetName = "教育核定表";
int i,j;

XSSFSheet sheet = sheets.createSheet(sheetName);

//对第一行进行合并单元格
sheet.addMergedRegion(new CellRangeAddress(0,0,0,4));
sheet.addMergedRegion(new CellRangeAddress(1,1,0,4));
//给第一、二行添值
sheet.createRow(0).createCell(0).setCellValue("表一");
sheet.createRow(1).createCell(0).setCellValue("XXX学校2021年度教育培养、住宿成本生均核定表");
//给第一列添值
String[] list1 = new String[]{
"项目" ,
"一、基本情况" ,
"(一)标准学生数" ,
"1、小学" ,
"2、初中" ,
"3、高中" ,
"(二)教职工" ,
"1、小学" ,
"2、初中" ,
"3、高中" ,
"(三)占地面积" ,
"(四)建筑面积" ,
"二、成本构成" ,
"(一)人员支出" ,
"1、小学" ,
"2、初中" ,
"3、高中" ,
"(二)租赁费" ,
"1、小学" ,
"2、初中" ,
"3、高中" ,
"(三)财务费用" ,
"1、小学" ,
"2、初中" ,
"3、高中" ,
"(四)商品和服务支出" ,
"(五)固定资产折旧" ,
"三、生均成本"
};
int listLength = list1.length;
for (i = 0;i<listLength;i++){
sheet.createRow(i+2).createCell(0).setCellValue(list1[i]);
}
sheet.getRow(2).createCell(1).setCellValue("申报数");
sheet.getRow(2).createCell(2).setCellValue("核定数");
sheet.getRow(2).createCell(3).setCellValue("教育成本核定数");
sheet.getRow(2).createCell(4).setCellValue("住宿成本核定数");

//调整列表的宽
sheet.setColumnWidth(0,256*33+184);


return sheet;
}
}

参数表

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
package com.dwx.file;

import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

public class minban_canshubiao {
public XSSFSheet setSheet(XSSFWorkbook sheets){
int j,i;
String sheetName = "参数表";
XSSFSheet sheet = sheets.createSheet(sheetName);
sheet.createRow(0).createCell(0).setCellValue("表:一");

sheet.addMergedRegion(new CellRangeAddress(1,1,0,14));
sheet.createRow(1).createCell(0).setCellValue("新乡市民办学校教育定价成本监审参数表");
//同理 有一个一系列的合并单元格
int[] list1 = new int[]{0,1,11,12,13};

for (i=0;i<=4;i++){
sheet.addMergedRegion(new CellRangeAddress(2,3,list1[i],list1[i]));
}
XSSFRow row = sheet.createRow(2);
String[] list2 = new String[]{"项 目","栏次及关系","总监审数","教育生均监审数","住宿生均监审数"};
for (i=0;i<=4;i++){
row.createCell(list1[i]).setCellValue(list2[i]);
}
row.createCell(14).setCellValue("备注");
sheet.getRow(2).createCell(2).setCellValue("2019年");
sheet.getRow(2).createCell(5).setCellValue("2020年");
sheet.getRow(2).createCell(8).setCellValue("2021年");
XSSFRow row1 = sheet.createRow(3);
for ( j = 1;j<=9;j++){
if (j%3 == 0){
row1.createCell(j+1).setCellValue("申报数");
}else if (j%3 == 2){
row1.createCell(j+1).setCellValue("核增核减数");
}else {
row1.createCell(j+1).setCellValue("核定数");
}
}
//给第一列和备注列添值
String[] list3 = new String[]{
"一、固定资产利用率" ,
"二、教学建筑面积占比" ,
"二、住宿建筑面积占比" ,
"三、行管分摊率" ,
"小学" ,
"初中" ,
"高中" ,
"四、教职工占比" ,
"小学" ,
"初中" ,
"高中" ,
"五、平均工资" ,
"六、招待费" ,
"七、培训费" ,
"八、工会经费" ,
"九、维修费" ,
"十、其它支出" ,
"十一、福利费" ,
"十二、"
};
String[] list4 = new String[]{
"不得低于80%。" ,
"" ,
"" ,
"均为1正确" ,
"" ,
"" ,
"" ,
"不得明显高于公办水准(标准120%)" ,
"标准:小学1:19" ,
"标准:初中1:13.5" ,
"标准:高中1:12.5" ,
"统计局:2019年71027元;2020年72261元;2021年?" ,
"年收入0.5%" ,
"人员工资总额的8%" ,
"人员工资总额的2%" ,
"不得高于固定资产原值的2%" ,
"不得高于公用支出(不含维修费)20%" ,
"人员工资总额的14%",
""
};
int list1Length = list3.length;
for (i = 0;i< list1Length;i++){
sheet.createRow(i+4).createCell(0).setCellValue(list3[i]);
sheet.getRow(i+4).createCell(1).setCellValue(i+1);
sheet.getRow(i+4).createCell(14).setCellValue(list4[i]);
}
//添加几个常数

sheet.getRow(12).createCell(2).setCellValue(19);
sheet.getRow(12).createCell(5).setCellValue(19);
sheet.getRow(12).createCell(8).setCellValue(19);

sheet.getRow(13).createCell(2).setCellValue(13.5);
sheet.getRow(13).createCell(5).setCellValue(13.5);
sheet.getRow(13).createCell(8).setCellValue(13.5);

sheet.getRow(14).createCell(2).setCellValue(12.5);
sheet.getRow(14).createCell(5).setCellValue(12.5);
sheet.getRow(14).createCell(8).setCellValue(12.5);
//设置表宽
sheet.setColumnWidth(0,256*24+184);





return sheet;
}
}

2022/3/3

公办的表都写好了

封面

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
package com.dwx.public_schools;

import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

public class cover {
public XSSFSheet setSheet(XSSFWorkbook sheets){
String sheetName = "封面";
XSSFSheet sheet = sheets.createSheet(sheetName);


//设置民办封面
//创建一个sheet
//封面的第一行是空着的
int i;
XSSFRow xssfRow;
XSSFCell xssfCell;
// 申请第一行 行和列都是从零开始的
XSSFRow row = sheet.createRow(0);
CellRangeAddress cellAddresses1 = new CellRangeAddress(0, 0, 0, 1);
sheet.addMergedRegion(cellAddresses1);
//第一行是四个cell
for ( i = 0;i<4;i++){
XSSFCell cell = row.createCell(i);
//第一行都是空着的 因此我们也把这个值设成空值
cell.setCellValue("");
}

//下边编写第二行
//第二行只用一列
//设置单元格的合并
CellRangeAddress cellAddresses = new CellRangeAddress(1, 1, 0, 5);
sheet.addMergedRegion(cellAddresses);
XSSFRow row1 = sheet.createRow(1);
XSSFCell cell = row1.createCell(0);
cell.setCellValue("新乡市民办学校教育定价成本监审表");

//第三行是一个空格行
CellRangeAddress cellAddresses2 = new CellRangeAddress(2, 2, 0, 5);
sheet.addMergedRegion(cellAddresses2);
XSSFRow row2 = sheet.createRow(2);
XSSFCell cell1 = row2.createCell(0);
cell1.setCellValue("");
//为第五后的合并单元格
for (i=3;i<=11;i++){
CellRangeAddress cellAddresses4 = new CellRangeAddress(i, i, 2, 4);
sheet.addMergedRegion(cellAddresses4);
}
//第五航到第12行
String[] name = new String[]{"学 校 名 称","法 定人 代 表","学 校 地 址","邮 政 编 码","财务负责人","填 表 人","电 话 ","邮 箱","传 真 "};
for (i = 3;i<=11; i++){
XSSFRow row4 = sheet.createRow(i);
XSSFCell cell4 = row4.createCell(1);
cell4.setCellValue(name[i-3]);

}
//第十三行是空格行
sheet.createRow(12);
//第十四行
XSSFRow row3 = sheet.createRow(13);
XSSFCell cell2 = row3.createCell(3);
cell2.setCellValue("学校盖章");
CellRangeAddress cellAddresses3 = new CellRangeAddress(13, 13, 3, 4);
sheet.addMergedRegion(cellAddresses3);
//第十五行

XSSFRow row4 = sheet.createRow(14);
XSSFCell cell3 = row4.createCell(3);
cell3.setCellValue(" 年");

XSSFCell cell4 = row4.createCell(4);
cell4.setCellValue(" 月 日");

//一下是对表格的宽度等的优化

//设置列宽

sheet.setColumnWidth(0, 258*23+184);
sheet.setColumnWidth(1, 258*23+184);
sheet.setColumnWidth(3, 258*13+184);
sheet.setColumnWidth(4, 258*13+184);
sheet.setColumnWidth(5, 258*28+184);

//设置行高
sheet.setDefaultRowHeight((short) 456);






return sheet;
}

}

基本表1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
package com.dwx.public_schools;

import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

public class sheet01 {
public XSSFSheet setSheet(XSSFWorkbook sheets){
String sheetName = "基本情况表1";
XSSFSheet sheet = sheets.createSheet(sheetName);

//设置表格的第一行
sheet.createRow(0).createCell(0).setCellValue("表:一");

//设置第二行 有一个大的合并单元格
sheet.addMergedRegion(new CellRangeAddress(1,1,0,9));
sheet.addMergedRegion(new CellRangeAddress(2,2,0,9));
sheet.createRow(1).createCell(0).setCellValue("XXX学校住宿定价成本监审学生人数调查表");
sheet.createRow(2).createCell(0).setCellValue("学校名称:(盖章) ");

//老朋友 一系列的小合并单元格
//老朋友 一系列合并单元格
sheet.addMergedRegion(new CellRangeAddress(3,4,0,0));
sheet.addMergedRegion(new CellRangeAddress(3,4,1,1));
sheet.addMergedRegion(new CellRangeAddress(3,4,9,9));
sheet.addMergedRegion(new CellRangeAddress(3,4,8,8));

// 又有一系列小的横向合并
for (int i=0;i<=4;i=i+2){
CellRangeAddress cellAddresses1 = new CellRangeAddress(3, 3, i+2, i+3);
sheet.addMergedRegion(cellAddresses1);
}
//添值
sheet.createRow(3).createCell(0).setCellValue("项 目");
sheet.getRow(3).createCell(1).setCellValue("栏次及关系");
sheet.getRow(3).createCell(8).setCellValue("总监审数");
sheet.getRow(3).createCell(9).setCellValue("备注");

sheet.getRow(3).createCell(2).setCellValue("2019年");
sheet.getRow(3).createCell(4).setCellValue("2020年");
sheet.getRow(3).createCell(6).setCellValue("2021年");
XSSFRow row = sheet.createRow(4);
for (int j = 0;j<6;j++){
if (j%2 == 0){
row.createCell(j+2).setCellValue("申报数");
}else {
row.createCell(j+2).setCellValue("核定数");
}
}
//设置第一列的值
String[] list1 = new String[]{
"一、规模房间数(间)" ,
"6人/间" ,
"8人/间" ,
"10人/间" ,
"三、规模人数" ,
"6人/间" ,
"8人/间" ,
"10人/间" ,
"四、实际房间数(间" ,
"6人/间" ,
"8人/间" ,
"10人/间" ,
"五、实际在校平均学生数" ,
"其中:年初学生数" ,
" 年末学生数" ,
"六、实际在校平均住宿标准学生数" ,
"其中:年初学生数" ,
" 年末学生数"
};
int listLength = list1.length;
for (int h = 1; h <= listLength;h++){
sheet.createRow(h+4).createCell(0).setCellValue(list1[h-1]);
sheet.getRow(h+4).createCell(1).setCellValue(h);
}

//在备注最后有两个合并单元格
sheet.addMergedRegion(new CellRangeAddress(17,19,9,9));
sheet.addMergedRegion(new CellRangeAddress(20,22,9,9));
sheet.getRow(17).createCell(9).setCellValue("按实际在校学生人数填写。");
sheet.getRow(20).createCell(9).setCellValue("按按实际在校住宿学生人数填写。");


//设置单元格的宽度
sheet.setColumnWidth(0,256*17+184);
sheet.setColumnWidth(2,256*12+184);
sheet.setColumnWidth(3,256*12+184);
sheet.setColumnWidth(4,256*12+184);
sheet.setColumnWidth(5,256*12+184);
sheet.setColumnWidth(6,256*12+184);
sheet.setColumnWidth(7,256*12+184);
sheet.setColumnWidth(8,256*12+184);
sheet.setColumnWidth(9,256*17+184);






return sheet;
}
}

基本表2

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
package com.dwx.public_schools;

import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

public class sheet02 {
public XSSFSheet setSheet(XSSFWorkbook sheets){

String sheetName = "基本情况表2";
XSSFSheet sheet = sheets.createSheet(sheetName);
sheet.createRow(0).createCell(0).setCellValue("表:二");
//编写第二行
//设置第二行 有一个大的合并单元格
sheet.addMergedRegion(new CellRangeAddress(1,1,0,9));
sheet.addMergedRegion(new CellRangeAddress(2,2,0,9));
sheet.createRow(1).createCell(0).setCellValue("XXX学校住宿定价成本监审学生人数调查表");
sheet.createRow(2).createCell(0).setCellValue("学校名称:(盖章) 单位:人学校名称:(盖章) 单位:人");

//老朋友 一系列的小合并单元格
//老朋友 一系列合并单元格
sheet.addMergedRegion(new CellRangeAddress(3,4,0,0));
sheet.addMergedRegion(new CellRangeAddress(3,4,1,1));
sheet.addMergedRegion(new CellRangeAddress(3,4,9,9));
sheet.addMergedRegion(new CellRangeAddress(3,4,8,8));

// 又有一系列小的横向合并
for (int i=0;i<=4;i=i+2){
CellRangeAddress cellAddresses1 = new CellRangeAddress(3, 3, i+2, i+3);
sheet.addMergedRegion(cellAddresses1);
}
//添值
sheet.createRow(3).createCell(0).setCellValue("项 目");
sheet.getRow(3).createCell(1).setCellValue("栏次及关系");
sheet.getRow(3).createCell(8).setCellValue("总监审数");
sheet.getRow(3).createCell(9).setCellValue("备注");

sheet.getRow(3).createCell(2).setCellValue("2019年");
sheet.getRow(3).createCell(4).setCellValue("2020年");
sheet.getRow(3).createCell(6).setCellValue("2021年");
XSSFRow row = sheet.createRow(4);
for (int j = 0;j<6;j++){
if (j%2 == 0){
row.createCell(j+2).setCellValue("申报数");
}else {
row.createCell(j+2).setCellValue("核定数");
}

}
//给第一列填值
String[] list1 = new String[]{
"一、教职工总数" ,
"(一)宿管人员数 " ,
"(二)维修人员数" ,
"(三)其它人员数" ,
"二、总建筑面积" ,
"(一)教学建筑面积" ,
"(二)住宿面积" ,
"(三)餐厅面积" ,
"三、固定资产原值" ,
"四、现执行收费标准"
};
int listLength = list1.length;
for (int h = 1; h <= listLength;h++){
sheet.createRow(h+4).createCell(0).setCellValue(list1[h-1]);
sheet.getRow(h+4).createCell(1).setCellValue(h);
}

//备注行由合并单元格
sheet.addMergedRegion(new CellRangeAddress(6,8,9,9));


sheet.getRow(6).createCell(9).setCellValue("其它人员:指保洁、保安等。此表格视情况而定,一般情况下不申报,特殊情况下可以研究。");

sheet.getRow(13).createCell(9).setCellValue("单位:万元");
sheet.getRow(14).createCell(9).setCellValue("单位:元/生.年");


sheet.setColumnWidth(0,256*17+184);
sheet.setColumnWidth(2,256*12+184);
sheet.setColumnWidth(3,256*12+184);
sheet.setColumnWidth(4,256*12+184);
sheet.setColumnWidth(5,256*12+184);
sheet.setColumnWidth(6,256*12+184);
sheet.setColumnWidth(7,256*12+184);
sheet.setColumnWidth(8,256*12+184);
sheet.setColumnWidth(9,256*17+184);
return sheet;
}

}

基本表3

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
package com.dwx.public_schools;

import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

public class sheet03 {
public XSSFSheet setSheet(XSSFWorkbook sheets){

String sheetName = "三年相关科目调查表3";
XSSFSheet sheet = sheets.createSheet(sheetName);

sheet.createRow(0).createCell(0).setCellValue("表三");
sheet.addMergedRegion(new CellRangeAddress(1,1,0,10));
sheet.createRow(1).createCell(0).setCellValue("新乡市xxx学校财政审核后账册中相关科目基本情况表");
//创建我们的老朋友 一系列小合并单元格
sheet.addMergedRegion(new CellRangeAddress(2,3,0,0));

sheet.addMergedRegion(new CellRangeAddress(2,2,1,3));
sheet.addMergedRegion(new CellRangeAddress(2,2,4,6));
sheet.addMergedRegion(new CellRangeAddress(2,2,7,9));
sheet.createRow(2).createCell(1).setCellValue("2019年");
sheet.getRow(2).createCell(4).setCellValue("2020年");
sheet.getRow(2).createCell(7).setCellValue("2021年");
sheet.getRow(2).createCell(0).setCellValue("");
sheet.getRow(2).createCell(10).setCellValue("备注");

XSSFRow row = sheet.createRow(3);
for (int j = 1;j<=9;j++){
if (j%3 == 0){
row.createCell(j).setCellValue("申报数");
}else if (j%3 == 2){
row.createCell(j).setCellValue("核增核减数");
}else {
row.createCell(j).setCellValue("审定数");
}
}

//创建第一列
String[] list1 = new String[]{
"一、人员支出" ,
"(一)宿管人员数 " ,
"(二)维修人员数" ,
"(三)其它人员数" ,
"二、公用支出" ,
"1、维修费" ,
"2、水费" ,
"3、电费" ,
"4、垃圾清运费" ,
"5、" ,
"6、其它费用" ,
"三、合计"
};
int listLength = list1.length;;
for (int i =1;i<=listLength;i++){
sheet.createRow(i+3).createCell(0).setCellValue(list1[i-1]);
}
sheet.addMergedRegion(new CellRangeAddress(5,5,0,1));
sheet.addMergedRegion(new CellRangeAddress(6,6,0,1));
sheet.addMergedRegion(new CellRangeAddress(7,7,0,1));
sheet.addMergedRegion(new CellRangeAddress(5,7,10,10));
sheet.getRow(5).createCell(10).setCellValue("提供三类人员工资表");
sheet.addMergedRegion(new CellRangeAddress(8,14,10,10));
sheet.getRow(8).createCell(10).setCellValue("根据实际情况,可增加科目或另行加行。");


//设置单元格的宽度
sheet.setColumnWidth(0,256*14+186);
sheet.setColumnWidth(1,256*10+186);
sheet.setColumnWidth(2,256*10+186);
sheet.setColumnWidth(3,256*10+186);
sheet.setColumnWidth(4,256*10+186);
sheet.setColumnWidth(5,256*10+186);
sheet.setColumnWidth(6,256*10+186);
sheet.setColumnWidth(7,256*10+186);
sheet.setColumnWidth(8,256*10+186);
sheet.setColumnWidth(9,256*10+186);
sheet.setColumnWidth(10,256*14+186);



return sheet;
}
}

基本表4

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
package com.dwx.public_schools;

import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

public class sheet04 {
public XSSFSheet setSheet(XSSFWorkbook sheets){

String sheetName = "三年账册相关科目表4";
XSSFSheet sheet = sheets.createSheet(sheetName);
//设置第一行第一列
sheet.createRow(0).createCell(0).setCellValue("表:四");

sheet.addMergedRegion(new CellRangeAddress(1,1,0,10));
sheet.createRow(1).createCell(0).setCellValue("新乡市xxx学校账册相关科目基本情况调查表");
//老朋友来喽 一系列合并单元格
sheet.addMergedRegion(new CellRangeAddress(2,3,0,0));
sheet.createRow(2).createCell(0).setCellValue("科目");
sheet.addMergedRegion(new CellRangeAddress(2,2,1,3));
sheet.addMergedRegion(new CellRangeAddress(2,2,4,6));
sheet.addMergedRegion(new CellRangeAddress(2,2,7,9));
sheet.getRow(2).createCell(1).setCellValue("2019年");
sheet.getRow(2).createCell(4).setCellValue("2020年");
sheet.getRow(2).createCell(7).setCellValue("2021年");
sheet.createRow(3).createCell(10).setCellValue("备注");

XSSFRow row = sheet.getRow(3);

for (int j = 1;j<=9;j++){
if (j%3 == 0){
row.createCell(j).setCellValue("凭证类型");
}else if (j%3 == 2){
row.createCell(j).setCellValue("账册号");
}else {
row.createCell(j).setCellValue("金额");
}
}

//设置第一列
String[] list1 = new String[]{
"一、维修费" ,
"1、" ,
"2、" ,
"3、" ,
"4、" ,
"5、" ,
"6、" ,
"7、" ,
"8、" ,
"9、" ,
"10、" ,
"二、其它支出" ,
"1、" ,
"2、" ,
"3、" ,
"4、" ,
"5、" ,
"6、" ,
"7、" ,
"8、" ,
"9、" ,
"10、"
};
int listLength = list1.length;
for (int i = 1 ;i<= listLength;i++){
sheet.createRow(i+3).createCell(0).setCellValue(list1[i-1]);
}
//设置合并单元格
sheet.addMergedRegion(new CellRangeAddress(4,14,10,10));
sheet.addMergedRegion(new CellRangeAddress(15,25,10,10));
sheet.getRow(4).createCell(10).setCellValue("1、统计大于该科目金额20%的明细。2、凭证类型填写发票、合同(协议)、白条(收据)");
sheet.getRow(15).createCell(10).setCellValue("1、如果金额大于公用支出20%,请按内容分类。 如果金额小于公用支出20%,不填写。2、凭证类型填写发票、合同(协议)、白条(收据)");

sheet.setColumnWidth(0,256*12+186);
sheet.setColumnWidth(1,256*10+186);
sheet.setColumnWidth(2,256*10+186);
sheet.setColumnWidth(3,256*10+186);
sheet.setColumnWidth(4,256*10+186);
sheet.setColumnWidth(6,256*10+186);
sheet.setColumnWidth(7,256*10+186);
sheet.setColumnWidth(8,256*10+186);
sheet.setColumnWidth(9,256*10+186);
sheet.setColumnWidth(10,256*12+186);


return sheet;
}
}

附表1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
package com.dwx.public_schools;

import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

public class sheet05 {
public XSSFSheet setSheet(XSSFWorkbook sheets){
String sheetName = "住宿成本调查核算表";
XSSFSheet sheet = sheets.createSheet(sheetName);
sheet.createRow(0).createCell(0).setCellValue("附件1");
sheet.addMergedRegion(new CellRangeAddress(1,1,0,14));
sheet.addMergedRegion(new CellRangeAddress(2,2,0,14));
sheet.createRow(1).createCell(0).setCellValue("XXXXXX生均教育价格成本调查核算表");
sheet.createRow(2).createCell(0).setCellValue("学校名称:(盖章) 单位:元 ");

//啊哈哈哈 一系列合并单元格来喽~~~
sheet.addMergedRegion(new CellRangeAddress(3,4,0,0));
sheet.addMergedRegion(new CellRangeAddress(3,4,1,1));
sheet.addMergedRegion(new CellRangeAddress(3,4,11,11));
sheet.addMergedRegion(new CellRangeAddress(3,4,14,14));
sheet.createRow(3).createCell(0).setCellValue("项 目");
sheet.getRow(3).createCell(1).setCellValue("栏次及关系");
sheet.getRow(3).createCell(11).setCellValue("2021年度成本费用核定数");
sheet.getRow(3).createCell(14).setCellValue("备注");

sheet.addMergedRegion(new CellRangeAddress(3,3,2,4));
sheet.addMergedRegion(new CellRangeAddress(3,3,5,7));
sheet.addMergedRegion(new CellRangeAddress(3,3,8,10));
sheet.addMergedRegion(new CellRangeAddress(3,3,12,13));

sheet.getRow(3).createCell(2).setCellValue("2019年");
sheet.getRow(3).createCell(5).setCellValue("2020年");
sheet.getRow(3).createCell(8).setCellValue("2021年");
sheet.getRow(3).createCell(12).setCellValue("2021年度住宿成本核定数");

XSSFRow row = sheet.createRow(4);
for (int j = 2;j<=10;j++){
if (j%3 == 0){
row.createCell(j).setCellValue("核增核减数");
}else if (j%3 == 2){
row.createCell(j).setCellValue("申报数");
}else {
row.createCell(j).setCellValue("审定数");
}
}
row.createCell(12).setCellValue("住宿成本");
row.createCell(13).setCellValue("生均结论");

//设置第一列
String[] list1 = new String[]{
"一、人员支出" ,
"(一)宿管人员数 " ,
"(二)维修人员数" ,
"(三)其它人员数" ,
"二、公用支出" ,
"1、维修费" ,
"2、水费" ,
"3、电费" ,
"4、垃圾清运费" ,
"5、" ,
"6、其它费用" ,
"十二、生均合计"
};
int listLength = list1.length;
for (int i=0;i<listLength;i++){
sheet.createRow(i+5).createCell(0).setCellValue(list1[i]);
sheet.getRow(i+5).createCell(1).setCellValue(i+1);
}

sheet.addMergedRegion(new CellRangeAddress(5,8,13,13));
sheet.addMergedRegion(new CellRangeAddress(9,15,13,13));
sheet.addMergedRegion(new CellRangeAddress(10,15,14,14));
sheet.getRow(10).createCell(14).setCellValue("按建筑面积比进行分摊");

//创建列表的宽
sheet.setColumnWidth(0,256*13+186);
sheet.setColumnWidth(0,256*11+186);

return sheet;
}
}

附表2

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
package com.dwx.public_schools;

import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

public class sheet06 {
public XSSFSheet setSheet(XSSFWorkbook sheets){
String sheetName = "住宿成本报告核定表";
XSSFSheet sheet = sheets.createSheet(sheetName);

sheet.addMergedRegion(new CellRangeAddress(0,0,1,4));
sheet.addMergedRegion(new CellRangeAddress(1,1,1,4));

sheet.createRow(0).createCell(0).setCellValue("表一");
sheet.createRow(1).createCell(0).setCellValue("XXX学校2021年度住宿成本生均核定表");

sheet.createRow(2).createCell(0).setCellValue("项目");
sheet.getRow(2).createCell(1).setCellValue("栏次及关系");
sheet.getRow(2).createCell(2).setCellValue("申报数");
sheet.getRow(2).createCell(3).setCellValue("核定数");
sheet.getRow(2).createCell(4).setCellValue("备注");

String[] list1 = new String[]{
"一、基本情况" ,
"(一)标准学生数",
"其中:年初学生数" ,
" 年末学生数" ,
"(二)宿舍管理人员" ,
"(三)宿舍建筑面积" ,
"(四)标准间(人/间)" ,
"(五)房间数" ,
"二、成本构成" ,
"(一)人员支出" ,
"1、宿管人员数 " ,
"2、维修人员数" ,
"3、其它人员数" ,
"(二)公用支出" ,
"1、维修费" ,
"2、水费" ,
"3、电费" ,
"4、垃圾清运费" ,
"5、" ,
"6、其它费用" ,
"三、生均成本"
};
int listLength = list1.length;
int i =0;
for (i=0;i<listLength;i++){
sheet.createRow(i+3).createCell(0).setCellValue(list1[i]);
sheet.getRow(i+3).createCell(1).setCellValue(i+1);
}

sheet.setColumnWidth(0,256*19+186);
sheet.setColumnWidth(1,256*11+186);
sheet.setColumnWidth(2,256*14+186);
sheet.setColumnWidth(3,256*14+186);
sheet.setColumnWidth(4,256*14+186);


return sheet;
}
}

附表3

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
package com.dwx.public_schools;

import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

public class sheet07 {
public XSSFSheet setSheet(XSSFWorkbook sheets){

String sheetName = "参数表";
XSSFSheet sheet = sheets.createSheet(sheetName);

sheet.addMergedRegion(new CellRangeAddress(1,1,0,12));
sheet.createRow(1).createCell(0).setCellValue("新乡XXX学校住宿定价成本监审参数表");

//啊哈哈哈 一系列的合并单元格
sheet.addMergedRegion(new CellRangeAddress(2,3,0,0));
sheet.addMergedRegion(new CellRangeAddress(2,3,1,1));
sheet.addMergedRegion(new CellRangeAddress(2,3,11,11));
sheet.addMergedRegion(new CellRangeAddress(2,3,12,12));

sheet.createRow(2).createCell(0).setCellValue("项 目");
sheet.getRow(2).createCell(1).setCellValue("栏次及关系");
sheet.getRow(2).createCell(11).setCellValue("结论");
sheet.getRow(2).createCell(12).setCellValue("备注");

sheet.addMergedRegion(new CellRangeAddress(2,2,2,4));
sheet.addMergedRegion(new CellRangeAddress(2,2,5,7));
sheet.addMergedRegion(new CellRangeAddress(2,2,8,10));
sheet.getRow(2).createCell(2).setCellValue("2019年");
sheet.getRow(2).createCell(5).setCellValue("2020年");
sheet.getRow(2).createCell(8).setCellValue("2021年");

XSSFRow row = sheet.createRow(3);
for (int j = 2;j<=10;j++){
if (j%3 == 0){
row.createCell(j).setCellValue("申报数");
}else if (j%3 == 2){
row.createCell(j).setCellValue("核增核减数");
}else {
row.createCell(j).setCellValue("审定数");
}
}

//创建第一列
String[] list1 = new String[]{
"一、固定资产利用率" ,
"二、住宿建筑面积占比" ,
"三、住宿学生占比" ,
"四、维修费" ,
"五、其它支出" ,
"六、"
};
int listLength = list1.length;
for (int j = 1;j <= listLength;j++){

sheet.createRow(j+3).createCell(0).setCellValue(list1[j-1]);
sheet.getRow(j+3).createCell(1).setCellValue(j);
}
sheet.getRow(4).createCell(12).setCellValue("不得低于80%。");
sheet.getRow(7).createCell(12).setCellValue("不得高于固定资产原值的2%");

sheet.setColumnWidth(0,256*15+186);
sheet.setColumnWidth(2,256*9+186);
sheet.setColumnWidth(3,256*9+186);
sheet.setColumnWidth(4,256*9+186);
sheet.setColumnWidth(5,256*9+186);
sheet.setColumnWidth(6,256*9+186);
sheet.setColumnWidth(7,256*9+186);
sheet.setColumnWidth(8,256*9+186);
sheet.setColumnWidth(9,256*9+186);
sheet.setColumnWidth(10,256*9+186);
sheet.setColumnWidth(11,256*9+186);
sheet.setColumnWidth(12,256*9+186);

return sheet;
}
}

Donate
  • Copyright: Copyright is owned by the author. For commercial reprints, please contact the author for authorization. For non-commercial reprints, please indicate the source.

扫一扫,分享到微信

微信分享二维码
  • Copyrights © 2015-2023 dwx
  • Visitors: | Views:

请我喝杯咖啡吧~

支付宝
微信