js导出word

JavaScript08

js导出word,第1张

前端拿到服务端数据生成 word 、excel 、pdf ,并导出或预览,此处为导出word 参考地址3. jszipJSZip 是一个用于创建、读取和编辑 .zip 文件的 javascript 库,具有可爱而简单的 API。 4. FileSaver它可以利用新流的强大功能将数据异步直接保存到硬盘驱动器应用程序接口。这将支持进度、取消和知道何时完成写作 FileSaver.js 是在客户端保存文件的解决方案,非常适合在客户端生成文件的 Web 应用程序 saveAs() 地址)

按照这个页面的格式创建一个word文档,里面所有的和页面一样。然后把它另存为xml格式的文件。再在xml格式里面将需要填写的东西打上标记。页面上填写好数据提交后,在后台接收数据,按照打上的标记一一对应的存到word里面,再让用户下载。就算是导出完整的word文档了。 这个是完成的一个想法。你可以百度一下具体操作的方法。

1、环境支持

1.1 添加poi支持:包下载地址http://www.apache.org/dyn/closer.cgi/poi/release/

1.2 POI对Excel文件的读取操作比较方便,POI还提供对Word的DOC格式文件的读取。但在它的发行版本中没有发布对Word支持的模块,需要另外下载一个POI的扩展的Jar包。下载地址为http://www.ibiblio.org/maven2/org/textmining/tm-extractors/0.4/ 下载extractors-0.4_zip这个文件

package com.ray.poi.util

import java.io.ByteArrayInputStream

import java.io.File

import java.io.FileInputStream

import java.io.FileOutputStream

import java.io.IOException

import org.apache.poi.poifs.filesystem.DirectoryEntry

import org.apache.poi.poifs.filesystem.DocumentEntry

import org.apache.poi.poifs.filesystem.POIFSFileSystem

import org.textmining.text.extraction.WordExtractor

/**

* 读写doc

* @author wangzonghao

*

*/

public class POIWordUtil {

/**

* 读入doc

* @param doc

* @return

* @throws Exception

*/

public static String readDoc(String doc) throws Exception {

// 创建输入流读取DOC文件

FileInputStream in = new FileInputStream(new File(doc))

WordExtractor extractor = null

String text = null

// 创建WordExtractor

extractor = new WordExtractor()

// 对DOC文件进行提取

text = extractor.extractText(in)

return text

}

/**

* 写出doc

* @param path

* @param content

* @return

*/

public static boolean writeDoc(String path, String content) {

boolean w = false

try {

// byte b[] = content.getBytes("ISO-8859-1")

byte b[] = content.getBytes()

ByteArrayInputStream bais = new ByteArrayInputStream(b)

POIFSFileSystem fs = new POIFSFileSystem()

DirectoryEntry directory = fs.getRoot()

DocumentEntry de = directory.createDocument("WordDocument", bais)

FileOutputStream ostream = new FileOutputStream(path)

fs.writeFilesystem(ostream)

bais.close()

ostream.close()

} catch (IOException e) {

e.printStackTrace()

}

return w

}

}

测试

package com.ray.poi.util

import junit.framework.TestCase

public class POIUtilTest extends TestCase {

public void testReadDoc() {

try{

String text = POIWordUtil.readDoc("E:/work_space/poi/com/ray/poi/util/demo.doc")

System.out.println(text)

}catch(Exception e){

e.printStackTrace()

}

}

public void testWriteDoc() {

String wr

try {

wr = POIWordUtil.readDoc("E:/work_space/poi/com/ray/poi/util/demo.doc")

boolean b = POIWordUtil.writeDoc("c:\\demo.doc",wr)

} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace()

}

}

}