1. 程式人生 > >使用poi將ueditor生成的內容匯出生成word文件,並以頁面檢視開啟

使用poi將ueditor生成的內容匯出生成word文件,並以頁面檢視開啟

 將ueditor生成的內容儲存成字串,通過下面的內容拼成html,並使生成的word以頁面檢視的方式開啟。

String str = " <!--[if gte mso 9]><xml><w:WordDocument><w:View>Print</w:View><w:TrackMoves>false</w:TrackMoves><w:TrackFormatting/><w:ValidateAgainstSchemas/><w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid><w:IgnoreMixedContent>false</w:IgnoreMixedContent><w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText><w:DoNotPromoteQF/><w:LidThemeOther>EN-US</w:LidThemeOther><w:LidThemeAsian>ZH-CN</w:LidThemeAsian><w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript><w:Compatibility><w:BreakWrappedTables/><w:SnapToGridInCell/><w:WrapTextWithPunct/><w:UseAsianBreakRules/><w:DontGrowAutofit/><w:SplitPgBreakAndParaMark/><w:DontVertAlignCellWithSp/><w:DontBreakConstrainedForcedTables/><w:DontVertAlignInTxbx/><w:Word11KerningPairs/><w:CachedColBalance/><w:UseFELayout/></w:Compatibility><w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel><m:mathPr><m:mathFont m:val='Cambria Math'/><m:brkBin m:val='before'/><m:brkBinSub m:val='--'/><m:smallFrac m:val='off'/><m:dispDef/><m:lMargin m:val='0'/> <m:rMargin m:val='0'/><m:defJc m:val='centerGroup'/><m:wrapIndent m:val='1440'/><m:intLim m:val='subSup'/><m:naryLim m:val='undOvr'/></m:mathPr></w:WordDocument></xml><![endif]-->";
				//其中content為ueditor生成的內容
				String h = " <html xmlns:v='urn:schemas-microsoft-com:vml'xmlns:o='urn:schemas-microsoft-com:office:office'xmlns:w='urn:schemas-microsoft-com:office:word'xmlns:m='http://schemas.microsoft.com/office/2004/12/omml'xmlns='http://www.w3.org/TR/REC-html40'  ";
				content =h+"<head>"+"<meta http-equiv='Content-Type' content='text/html; charset=utf-8' />"+str+"</head><body>"+content+"</body> </html>";
				 byte b[] = content.getBytes("utf-8");  //這裡是必須要設定編碼的,不然匯出中文就會亂碼。
		            ByteArrayInputStream bais = new ByteArrayInputStream(b);//將位元組陣列包裝到流中
		 
		            /*
		             * 關鍵地方
		             * 生成word格式 */
		            POIFSFileSystem poifs = new POIFSFileSystem();
		            DirectoryEntry directory = poifs.getRoot();
		            DocumentEntry documentEntry = directory.createDocument("WordDocument", bais);
		            String fileName=member.getMemberName();
		            FileOutputStream os = new FileOutputStream(path+File.separator+fileName+".doc");
		            //輸出檔案
		            poifs.writeFilesystem(os);
		            bais.close();
		            os.close();