forked from fanruan/easyexcel
Jiaju Zhuang
5 years ago
22 changed files with 297 additions and 65 deletions
@ -0,0 +1,101 @@ |
|||||||
|
package com.alibaba.easyexcel.test.temp.poi; |
||||||
|
|
||||||
|
import java.io.FileOutputStream; |
||||||
|
import java.io.IOException; |
||||||
|
import java.lang.reflect.Field; |
||||||
|
import java.lang.reflect.ParameterizedType; |
||||||
|
import java.lang.reflect.Type; |
||||||
|
|
||||||
|
import org.apache.poi.ss.formula.functions.T; |
||||||
|
import org.apache.poi.xssf.streaming.SXSSFCell; |
||||||
|
import org.apache.poi.xssf.streaming.SXSSFRow; |
||||||
|
import org.apache.poi.xssf.streaming.SXSSFSheet; |
||||||
|
import org.apache.poi.xssf.streaming.SXSSFWorkbook; |
||||||
|
import org.junit.Ignore; |
||||||
|
import org.junit.Test; |
||||||
|
import org.slf4j.Logger; |
||||||
|
import org.slf4j.LoggerFactory; |
||||||
|
|
||||||
|
import com.alibaba.excel.metadata.CellData; |
||||||
|
|
||||||
|
import sun.reflect.generics.reflectiveObjects.ParameterizedTypeImpl; |
||||||
|
|
||||||
|
/** |
||||||
|
* 测试poi |
||||||
|
* |
||||||
|
* @author Jiaju Zhuang |
||||||
|
**/ |
||||||
|
@Ignore |
||||||
|
public class PoiWriteTest { |
||||||
|
private static final Logger LOGGER = LoggerFactory.getLogger(PoiWriteTest.class); |
||||||
|
|
||||||
|
@Test |
||||||
|
public void write() throws IOException { |
||||||
|
FileOutputStream fileOutputStream = new FileOutputStream("D://test//tt12.xlsx"); |
||||||
|
SXSSFWorkbook sxxsFWorkbook = new SXSSFWorkbook(); |
||||||
|
SXSSFSheet sheet = sxxsFWorkbook.createSheet("t1"); |
||||||
|
SXSSFRow row = sheet.createRow(0); |
||||||
|
SXSSFCell cell1 = row.createCell(0); |
||||||
|
cell1.setCellValue(1); |
||||||
|
SXSSFCell cell2 = row.createCell(1); |
||||||
|
cell2.setCellValue(1); |
||||||
|
SXSSFCell cell3 = row.createCell(2); |
||||||
|
cell3.setCellFormula("=A1+B1"); |
||||||
|
sxxsFWorkbook.write(fileOutputStream); |
||||||
|
} |
||||||
|
|
||||||
|
@Test |
||||||
|
public void test() throws Exception { |
||||||
|
Class<TestCell> clazz = TestCell.class; |
||||||
|
|
||||||
|
Field field = clazz.getDeclaredField("c2"); |
||||||
|
// 通过getDeclaredField可以获得成员变量,但是对于Map来说,仅仅可以知道它是个Map,无法知道键值对各自的数据类型
|
||||||
|
|
||||||
|
Type gType = field.getGenericType(); |
||||||
|
// 获得field的泛型类型
|
||||||
|
|
||||||
|
// 如果gType是ParameterizedType对象(参数化)
|
||||||
|
if (gType instanceof ParameterizedType) { |
||||||
|
|
||||||
|
ParameterizedType pType = (ParameterizedType)gType; |
||||||
|
// 就把它转换成ParameterizedType对象
|
||||||
|
|
||||||
|
Type[] tArgs = pType.getActualTypeArguments(); |
||||||
|
// 获得泛型类型的泛型参数(实际类型参数)
|
||||||
|
ParameterizedTypeImpl c = (ParameterizedTypeImpl)pType.getActualTypeArguments()[0]; |
||||||
|
Class ttt = c.getRawType(); |
||||||
|
System.out.println(ttt); |
||||||
|
} else { |
||||||
|
System.out.println("出错!!!"); |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Test |
||||||
|
public void test2() throws Exception { |
||||||
|
Class<TestCell> clazz = TestCell.class; |
||||||
|
|
||||||
|
Field field = clazz.getDeclaredField("c2"); |
||||||
|
// 通过getDeclaredField可以获得成员变量,但是对于Map来说,仅仅可以知道它是个Map,无法知道键值对各自的数据类型
|
||||||
|
|
||||||
|
Type gType = field.getGenericType(); |
||||||
|
// 获得field的泛型类型
|
||||||
|
|
||||||
|
// 如果gType是ParameterizedType对象(参数化)
|
||||||
|
if (gType instanceof ParameterizedType) { |
||||||
|
|
||||||
|
ParameterizedType pType = (ParameterizedType)gType; |
||||||
|
// 就把它转换成ParameterizedType对象
|
||||||
|
|
||||||
|
Type[] tArgs = pType.getActualTypeArguments(); |
||||||
|
// 获得泛型类型的泛型参数(实际类型参数)
|
||||||
|
ParameterizedTypeImpl c = (ParameterizedTypeImpl)pType.getActualTypeArguments()[0]; |
||||||
|
Class ttt = c.getRawType(); |
||||||
|
System.out.println(ttt); |
||||||
|
} else { |
||||||
|
System.out.println("出错!!!"); |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
} |
@ -0,0 +1,18 @@ |
|||||||
|
package com.alibaba.easyexcel.test.temp.poi; |
||||||
|
|
||||||
|
import java.util.List; |
||||||
|
|
||||||
|
import com.alibaba.excel.metadata.CellData; |
||||||
|
|
||||||
|
import lombok.Data; |
||||||
|
|
||||||
|
/** |
||||||
|
* TODO |
||||||
|
* |
||||||
|
* @author 罗成 |
||||||
|
**/ |
||||||
|
@Data |
||||||
|
public class TestCell { |
||||||
|
private CellData c1; |
||||||
|
private CellData<List<String>> c2; |
||||||
|
} |
Loading…
Reference in new issue