最近小弟现在,写了一个导入导出的demo,网上搜了许多大佬们写的导入导出的功能。参考了许多意见。本来以前写过poi导入导出Excel文档,奈何u盘找不到了。。。为了防止再次丢失,写个博客保存一下。
其实导入导出功能实现起来很简单,关键是你得导入正确的jar包,然后调用里面的方法就行了。
/*
* 依赖jar包:
* dom4j-1.6.1.jar
* geronimo-stax-api_1.0_spec-1.0.jar
* poi-3.7-20101029.jar
* poi-ooxml-3.7-20101029.jar
* poi-ooxml-schemas-3.7-20101029.jar
* poi-scratchpad-3.7-20101029.jar
* xmlbeans-2.3.0.jar
* commons-logging-1.1.jar
*/
public class WordDemo {
public static void main(String args[]) {
String context = null;
context = readDoc("E:\\4s\\sss.docx");
System.out.println(context);
/* String[] aa = context.split("\\s+");
List<Map> dataList = new ArrayList<Map>();
int num = aa.length / 3;
int j = 0;
for(int i = 0 ; i <num; i++){
//String name = aa[j]+aa[j+1]+aa[j+2];
Map<String, String> maps = new HashMap<String, String>();
maps.put("姓名", aa[j]);
maps.put("性别", aa[j+1]);
maps.put("工号", aa[j+2]);
//System.out.println(name);
dataList.add(maps);
j+=3;
}
System.out.println(dataList);*/
/*context = "NewFile";
context+="\n"+
"1234"+"\r\n"+
"abcdef";*/
writeDoc("E:\\4s\\bbbaaa.doc",context);
}
/**
* 读取Word文件
*/
public static String readDoc(String doc) {
String text = null;
try {
File file = new File(doc);
String fileName = file.getName();
int a = fileName.lastIndexOf(".");
String name = fileName.substring(a,fileName.length());
if(name.equals(".doc")){
// 创建输入流读取DOC文件
FileInputStream in = new FileInputStream(file);
// 创建WordExtractor
WordExtractor extractor = new WordExtractor(in);
// 对DOC文件进行提取
//text = extractor.extractText(in);
text = extractor.getTextFromPieces();
// text = extractor.getText();
}else if(name.equals(".docx")){
FileInputStream fis = new FileInputStream(file);
XWPFDocument xdoc = new XWPFDocument(fis);
XWPFWordExtractor wordExtractor = new XWPFWordExtractor(xdoc);
text = wordExtractor.getText();
//CoreProperties coreProps = wordExtractor.getCoreProperties();
fis.close();
}else{
text = "文件格式不符";
}
} catch (Exception e) {
e.printStackTrace();
}
return text;
}
/**
* 将内容写成一个doc文件,保存在磁盘上。
*/
public static boolean writeDoc(String path, String content) {
ByteArrayInputStream bais = null;
FileOutputStream ostream = null;
boolean w = false;
try {
content+="\r\n";
//byte b[] = content.getBytes("ISO-8859-1");
//byte b[] = content.getBytes("gbk");
//byte b[] = content.getBytes("GB2312");
//byte b[] = content.getBytes("UTF-8");
byte b[] = content.getBytes();
bais = new ByteArrayInputStream(b);
POIFSFileSystem fs = new POIFSFileSystem();
fs.getRoot().createDocument("WordDocument", bais);
ostream = new FileOutputStream(path);
fs.writeFilesystem(ostream);
} catch (IOException e) {
e.printStackTrace();
} finally {
if(bais!=null) try {bais.close(); } catch(Exception e) {e.printStackTrace();}
if(ostream!=null) try {ostream.close(); } catch(Exception e) {e.printStackTrace();}
}
return w;
}
}
里面导出的功能不怎么完整,还有一些导出的字体样式,字体大小,背景颜色等等。。。
大概就这些代码了,有jar包找不到的可以给小弟留下你们邮箱。我这里也有完整的demo,有需要的可以也可以留下邮箱。。。