You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@poi.apache.org by 上善 <11...@qq.com> on 2016/03/14 10:05:00 UTC

I need help.

Use POI on Android export word, use POI version 3.14(05 March 2016 - POI 3.14), use is replaced in the template content to be derived, if the word template in the form of column number is less than or equal to 6 is replaced each column in the normal export of, if the form template is greater than 6 columns is derived from the word can not be opened, do not know what that is? You had encountered this problem? How to solve it.


code:
	public void writeDoc(File demoFile ,File newFile ,Map<String, String> map)
	{
		try
		{	
			FileInputStream in = new FileInputStream(demoFile);
			HWPFDocument hdt = new HWPFDocument(in);
			// Fields fields = hdt.getFields();
			// 读取word文本内容
			Range range = hdt.getRange();
			// System.out.println(range.text());
			
			// 替换文本内容
			for(Map.Entry<String, String> entry : map.entrySet())
			{
				range.replaceText(entry.getKey(), entry.getValue());
			}
			ByteArrayOutputStream ostream = new ByteArrayOutputStream();
			FileOutputStream out = new FileOutputStream(newFile, true);
			hdt.write(ostream);
			// 输出字节流
			out.write(ostream.toByteArray());
			out.close();
			ostream.close();
		}
		catch(IOException e)
		{
			e.printStackTrace();
		}
		catch(Exception e)
		{
			e.printStackTrace();
		}
	}