forked from fanruan/easyexcel
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
160 lines
5.3 KiB
160 lines
5.3 KiB
package com.alibaba.easyexcel.test.core.compatibility; |
|
|
|
import java.io.File; |
|
import java.io.FileInputStream; |
|
import java.io.FileOutputStream; |
|
import java.io.InputStream; |
|
import java.io.OutputStream; |
|
import java.util.ArrayList; |
|
import java.util.HashMap; |
|
import java.util.List; |
|
import java.util.Map; |
|
|
|
import org.apache.poi.ss.usermodel.IndexedColors; |
|
import org.junit.Assert; |
|
import org.junit.BeforeClass; |
|
import org.junit.Test; |
|
|
|
import com.alibaba.easyexcel.test.util.TestFileUtil; |
|
import com.alibaba.excel.EasyExcel; |
|
import com.alibaba.excel.ExcelReader; |
|
import com.alibaba.excel.ExcelWriter; |
|
import com.alibaba.excel.metadata.Font; |
|
import com.alibaba.excel.metadata.Sheet; |
|
import com.alibaba.excel.metadata.Table; |
|
import com.alibaba.excel.metadata.TableStyle; |
|
import com.alibaba.excel.parameter.AnalysisParam; |
|
import com.alibaba.excel.parameter.GenerateParam; |
|
|
|
/** |
|
* |
|
* @author Jiaju Zhuang |
|
*/ |
|
public class CompatibilityDataTest { |
|
|
|
private static File file07; |
|
private static File file03; |
|
|
|
@BeforeClass |
|
public static void init() { |
|
file07 = TestFileUtil.createNewFile("compatibility07.xlsx"); |
|
file03 = TestFileUtil.createNewFile("compatibility03.xls"); |
|
} |
|
|
|
@Test |
|
public void t01ReadAndWrite07() throws Exception { |
|
readAndWrite(file07); |
|
} |
|
|
|
@Test |
|
public void t02ReadAndWrite03() throws Exception { |
|
readAndWrite(file03); |
|
} |
|
|
|
private void readAndWrite(File file) throws Exception { |
|
OutputStream out = new FileOutputStream(file); |
|
GenerateParam generateParam = new GenerateParam("", null, out); |
|
generateParam.setSheetName(""); |
|
generateParam.setOutputStream(out); |
|
generateParam.setClazz(null); |
|
ExcelWriter writer = new ExcelWriter(generateParam); |
|
// sheet1 width,string head,string data |
|
Sheet sheet1 = new Sheet(1, 3); |
|
sheet1.setSheetName("第一个sheet"); |
|
Map columnWidth = new HashMap(); |
|
columnWidth.put(0, 10000); |
|
columnWidth.put(1, 50000); |
|
sheet1.setColumnWidthMap(columnWidth); |
|
sheet1.setHead(head()); |
|
writer.write1(listData(), sheet1); |
|
|
|
// sheet2 style,class head |
|
Sheet sheet2 = new Sheet(2, 3, CompatibilityData.class, "第二个sheet", null); |
|
sheet2.setStartRow(5); |
|
sheet2.setTableStyle(style()); |
|
writer.write(data(), sheet2); |
|
writer.merge(8, 8, 0, 1); |
|
|
|
// sheet3 table |
|
Sheet sheet3 = new Sheet(3, 0); |
|
sheet3.setSheetName("第三个sheet"); |
|
|
|
Table table1 = new Table(1); |
|
table1.setHead(head()); |
|
writer.write1(listData(), sheet3, table1); |
|
|
|
Table table2 = new Table(2); |
|
table2.setClazz(CompatibilityData.class); |
|
writer.write(data(), sheet3, table2); |
|
|
|
writer.finish(); |
|
out.close(); |
|
|
|
InputStream inputStream = new FileInputStream(file); |
|
List<Object> data = EasyExcel.read(inputStream, new Sheet(1, 1)); |
|
Assert.assertEquals(data.size(), 1); |
|
List<String> dataList = (List<String>)data.get(0); |
|
Assert.assertEquals(dataList.get(0), "字符串00"); |
|
inputStream.close(); |
|
|
|
inputStream = new FileInputStream(file); |
|
AnalysisParam param = new AnalysisParam(inputStream, null, new Object()); |
|
param.setIn(inputStream); |
|
param.setExcelTypeEnum(null); |
|
param.setCustomContent(null); |
|
ExcelReader excelReader = new ExcelReader(param, new CompatibilityDataListener()); |
|
excelReader.read(new Sheet(2, 6)); |
|
Assert.assertEquals(excelReader.getSheets().size(), 3); |
|
Assert.assertTrue(excelReader.getAnalysisContext() != null); |
|
inputStream.close(); |
|
} |
|
|
|
private List<List<String>> head() { |
|
List<List<String>> list = new ArrayList<List<String>>(); |
|
List<String> head0 = new ArrayList<String>(); |
|
head0.add("字符串标题0"); |
|
List<String> head1 = new ArrayList<String>(); |
|
head1.add("字符串标题1"); |
|
list.add(head0); |
|
list.add(head1); |
|
return list; |
|
} |
|
|
|
private List<List<Object>> listData() { |
|
List<List<Object>> list = new ArrayList<List<Object>>(); |
|
List<Object> data0 = new ArrayList<Object>(); |
|
data0.add("字符串00"); |
|
data0.add(11); |
|
list.add(data0); |
|
return list; |
|
} |
|
|
|
private List<CompatibilityData> data() { |
|
List<CompatibilityData> list = new ArrayList<CompatibilityData>(); |
|
for (int i = 0; i < 10; i++) { |
|
CompatibilityData data = new CompatibilityData(); |
|
data.setString0("字符串0" + i); |
|
data.setString1("字符串1" + i); |
|
list.add(data); |
|
} |
|
return list; |
|
} |
|
|
|
public TableStyle style() { |
|
TableStyle tableStyle = new TableStyle(); |
|
Font headFont = new Font(); |
|
headFont.setBold(true); |
|
headFont.setFontHeightInPoints((short)22); |
|
headFont.setFontName("楷体"); |
|
tableStyle.setTableHeadFont(headFont); |
|
tableStyle.setTableHeadBackGroundColor(IndexedColors.BLUE); |
|
|
|
Font contentFont = new Font(); |
|
contentFont.setBold(true); |
|
contentFont.setFontHeightInPoints((short)22); |
|
contentFont.setFontName("黑体"); |
|
tableStyle.setTableContentFont(contentFont); |
|
tableStyle.setTableContentBackGroundColor(IndexedColors.GREEN); |
|
return tableStyle; |
|
} |
|
}
|
|
|