asset目录下的模板文件,不用先复制到sd卡中
* @param templetDocInStream 模板文件的InputStream
* @param targetDocPath 生成的目标文件的完整路径
* @param dataMap 替换的数据*/
public static void writeToDoc(InputStream templetDocInStream, String targetDocPath, Map<String,String> dataMap){
try
{
//得到模板doc文件的HWPFDocument对象
HWPFDocument HDoc = new HWPFDocument(templetDocInStream); // 获取word文本内容,整个文本
Range range = HDoc.getRange(); // 替换文本内容,将自定义的$xxx$替换成实际文本
for(Map.Entry<String, String> entry : dataMap.entrySet()) { range.replaceText(entry.getKey(), entry.getValue()); } //写到另一个文件中
FileOutputStream out = new FileOutputStream(targetDocPath, true); //把doc输出到输出流中
HDoc.write(out); out.close(); templetDocInStream.close();
}
catch(IOException e)
{
e.printStackTrace();
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
2、效果
生成的文件路径:内部存储——Android——data——com.why.project.poidemo——files——poi——请假单2.doc
混淆配置
无
参考资料
Android使用ApachePOI组件读写Worddoc和docx文件
Poi官网
Android中使用POI加载与显示word文档
poi替换模板标签为图片
POI用addPicture插入图片到word里面无法显示
使用POI读写Word doc文件
Android中使用POI加载与显示word文档
项目demo下载地址
https://github.com/haiyuKing/PoiDemo
|