Colección de citas famosas - Slogan de motivación - Cómo escribir columnas de combinación easypoi

Cómo escribir columnas de combinación easypoi

1

2

Tres

Cuatro

Cinco

Seis

Siete

Ocho

Nueve

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

Cuarenta y dos

43

Cuarenta y cuatro

45

46

47

48

Cuarenta y nueve

50

51

Cincuenta y dos

53

54

55

Cincuenta- seis años

57

58

59

60

61

62

63

64

65

66

67

Sesenta y ocho

Sesenta y nueve

70

71

Setenta y dos

73

p >

74

75

76

77

Setenta y ocho

79

80

81

82

83

84

Ochenta y cinco años

86

87

88

Ochenta y nueve

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

Paquete org.jeecgframe.

.util;

Importar Java .util .ArrayList;

Importar Java .util .hashmap;

Importar Java .util .list;

Importar Java util. map;

Importar Java. utils set;

Importar org. Importar org.poi.ss.modelo de usuario.

Importar .org.poi.ss. .modelo de usuario;

importar org.

/**

*Clase de herramienta de combinación de celdas verticales

* @authorJueyue

* @date 2065438+265438 de junio +2005 11 :21:40am

*/

Clase final pública PoiMergeCellUtil {

PoiMergeCellUtil privada(){

}

/**

*Fusionar verticalmente celdas con el mismo contenido.

*

* @param hoja de trabajo

* @param columna clave mergeMap, columna relacionada con el valor, no nula.

* @param startRow fila inicial

*/

Celda de combinación vacía estática pública (hoja de hoja, mapa & ltInteger, int []》; mergeMap, int startRow ) {

Map & ltInteger, MergeEntity & gtmergeDataMap = new HashMap & ltInteger, MergeEntity & gt()

if (fusionar mapa. tamaño () == 0 ) {

Retorno;

}

Fila fila;

Establecer<intger>sets = fusionar map.keyset();

Cadena texto;

for(int I = startRow;i<= hoja.getlastrownum();i++) {

fila = hoja.getrow( I);

for (índice entero: conjunto) {

if (fila. obtener celda (índice) == nulo) {

fusionar mapa de datos obtener (índice). setEndRow(I);

} else {

texto = fila obtener celda(índice).

getStringCellValue();

if (string utils. isnotempty(texto)) {

hanlderMergeCells(índice, I, texto, mergeDataMap, hoja, fila. obtener celda(índice),

fusionar map.get(índice));

}else{

mergeCellOrContinue(índice, mergeDataMap, hoja);

}

}

}

}

if (fusionar mapa de datos. tamaño()> 0) {

for (índice entero: fusionar mapa de datos. conjunto de claves ()) {

hoja. addmergedregion (nueva dirección de rango de celdas (fusionar mapa de datos. get (índice). getStartRow (),

fusionar datos map.get(index).getEndRow(),index,index));

}

}

}

/**

*Procesar celdas fusionadas

*

* @param index

* @param rowNum

* @param text

* @param mergeDataMap

* @param worksheet

* @param cell

* @param delys

*/

Hanlder vacío estático privadoMergeCells(índice entero, int rowNum, literal de cadena,

Map<Integer,MergeEntity>Merge Mapeo de datos, hoja de trabajo,

Celda celda, int []delys ) {

if (combinar mapa de datos. contiene clave (índice)) {

if(checkIsEqualByCellContents(combinar mapa de datos. get(index) ), texto, celda, delys, número de fila)({

fusionar mapa de datos. get(index). setEndRow(rowNum);

} else {

sheet.addmergedregion(nueva dirección de rango de celdas(merge data map.get(index).getStartRow(),

fusionar datos map.get(index).getEndRow(),index,index));

fusionar datos map.put(index,createMergeEntity(text,rowNum,cell,delys));

}

} De lo contrario, {

fusionar mapa de datos . put(index, createMergeEntity(text, rowNum, cell, delys));

}

/**

* Determinar cuándo el rol está vacío.

*

* @param index

* @param mergeDataMap

* @param hoja de trabajo

* /

mergeCellOrContinue vacío estático privado (índice entero, mapa y ltInteger, MergeEntity y gtmergeDataMap,

hoja de trabajo)

if (mapa de datos combinados. contiene clave (índice) )

& amp&merge data map.get(index).getEndRow()! = merge datamap.get(index).getStartRow()){

sheet. dirección(fusionar mapa de datos. get(index).getStartRow(),

fusionar mapa de datos. get(index).getEndRow(), index, index));

fusionar datos map .remove(index);

}

}

Entidad de fusión estática privada createMergeEntity(Texto de cadena, int número de fila, celda de celda, int【】delys) {

entidad de fusión entidad de fusión = nueva entidad de fusión (texto, número de fila, número de fila);

Lista & lt string & gtlist = nueva ArrayList & lt string & gt(delys.length) ;

fusionar entidad.setrelylist(lista);

for(int I = 0; i<delys.lengthi++) {

list.add(getCellNotNullText(cell, delys[I], rowNum);

}

Devolver mergeEntity

}

Verificación booleana estática privadaIsEqualByCellContents(fusionar entidad fusionar entidad, String text,

Celda celda, int []delys, int rowNum) {

//Sin dependencias

if (delys == null | | delys . longitud == 0 ) {

Devuelve mergeEntity.getText(). igual(texto);

}

//Existe una relación de dependencia.

if (fusionar entidad. gettext(). es igual a (texto)) {

for(int I = 0; i<delys.lengthi++) {

if ( !getCellNotNullText(celda, delys[I], número de fila es igual a (

mergeEntity.getRelyList().

get(I))){

Devuelve falso

}

}

Devuelve verdadero

}

Devuelve falso

}

/**

* Obtenga el valor de la celda y asegúrese de que la celda debe tener un valor, o arriba Consulta.

*

* @param celda

* @param índice

* @param filaNum

* @ return

*/

Cadena estática privada getCellNotNullText(cell Cell, int index, int rowNum) {

String temp = cell.getRow(). getCell(índice). getStringCellValue();

while(string utils. isempty(temp)) {

temp = cell.getRow(). obtenerHoja(). getRow(-número de fila). getCell(índice). getStringCellValue();

}

Temperatura de retorno;

}

}