mirror of
https://gitee.com/dromara/hutool.git
synced 2025-04-05 17:37:59 +08:00
fix #I2B57B
This commit is contained in:
parent
7d25da459f
commit
0c0f06f832
@ -5,6 +5,7 @@ import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.collection.IterUtil;
|
||||
import cn.hutool.core.convert.Convert;
|
||||
import cn.hutool.core.lang.Assert;
|
||||
import cn.hutool.core.lang.Console;
|
||||
import cn.hutool.core.map.MapUtil;
|
||||
import org.apache.poi.xwpf.usermodel.XWPFDocument;
|
||||
import org.apache.poi.xwpf.usermodel.XWPFTable;
|
||||
@ -33,7 +34,7 @@ public class TableUtil {
|
||||
}
|
||||
|
||||
/**
|
||||
* 创建表格并填充数据
|
||||
* 创建表格并填充数据,默认表格
|
||||
*
|
||||
* @param doc {@link XWPFDocument}
|
||||
* @param data 数据
|
||||
@ -41,19 +42,35 @@ public class TableUtil {
|
||||
*/
|
||||
public static XWPFTable createTable(XWPFDocument doc, Iterable<?> data) {
|
||||
Assert.notNull(doc, "XWPFDocument must be not null !");
|
||||
XWPFTable table = doc.createTable();
|
||||
final XWPFTable table = doc.createTable();
|
||||
// 新建table的时候默认会新建一行,此处移除之
|
||||
table.removeRow(0);
|
||||
return writeTable(table, data);
|
||||
}
|
||||
|
||||
/**
|
||||
* 为table填充数据
|
||||
*
|
||||
* @param table {@link XWPFTable}
|
||||
* @param data 数据
|
||||
* @return {@link XWPFTable}
|
||||
* @since 5.5.6
|
||||
*/
|
||||
public static XWPFTable writeTable(XWPFTable table, Iterable<?> data){
|
||||
Assert.notNull(table, "XWPFTable must be not null !");
|
||||
if (IterUtil.isEmpty(data)) {
|
||||
// 数据为空,返回空表
|
||||
return table;
|
||||
}
|
||||
|
||||
int index = 0;
|
||||
|
||||
boolean isFirst = true;
|
||||
for (Object rowData : data) {
|
||||
writeRow(getOrCreateRow(table, index), rowData, true);
|
||||
index ++;
|
||||
writeRow(table.createRow(), rowData, isFirst);
|
||||
if(isFirst){
|
||||
isFirst = false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return table;
|
||||
}
|
||||
|
||||
@ -81,7 +98,7 @@ public class TableUtil {
|
||||
writeRow(row, CollUtil.newArrayList(rowBean), isWriteKeyAsHead);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
writeRow(row, rowMap, isWriteKeyAsHead);
|
||||
}
|
||||
|
||||
|
@ -1,14 +1,15 @@
|
||||
package cn.hutool.poi.word;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.io.FileUtil;
|
||||
import cn.hutool.core.lang.Console;
|
||||
import cn.hutool.poi.word.Word07Writer;
|
||||
import org.junit.Ignore;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.awt.Font;
|
||||
import java.io.File;
|
||||
import java.util.ArrayList;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.Map;
|
||||
|
||||
@ -49,4 +50,36 @@ public class WordWriterTest {
|
||||
writer.addTable(CollUtil.newArrayList(map));
|
||||
writer.flush(FileUtil.file("d:/test/test.docx"));
|
||||
}
|
||||
|
||||
@Test
|
||||
@Ignore
|
||||
public void writeMapAsTableTest() {
|
||||
Word07Writer writer = new Word07Writer();
|
||||
|
||||
Map<String, Object> data = new LinkedHashMap<>();
|
||||
data.put("姓名", "张三");
|
||||
data.put("年龄", 23);
|
||||
data.put("成绩", 80.5);
|
||||
data.put("是否合格", true);
|
||||
data.put("考试日期", DateUtil.date());
|
||||
|
||||
Map<String, Object> data2 = new LinkedHashMap<>();
|
||||
data2.put("姓名", "李四");
|
||||
data2.put("年龄", 4);
|
||||
data2.put("成绩", 59);
|
||||
data2.put("是否合格", false);
|
||||
data2.put("考试日期", DateUtil.date());
|
||||
|
||||
ArrayList<Map<String, Object>> mapArrayList = CollUtil.newArrayList(data, data2);
|
||||
|
||||
// 添加段落(标题)
|
||||
writer.addText(new Font("方正小标宋简体", Font.PLAIN, 22), "我是第一部分");
|
||||
// 添加段落(正文)
|
||||
writer.addText(new Font("宋体", Font.PLAIN, 13), "我是正文第一部分");
|
||||
writer.addTable(mapArrayList);
|
||||
// 写出到文件
|
||||
writer.flush(FileUtil.file("d:/test/a.docx"));
|
||||
// 关闭
|
||||
writer.close();
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user