xwpftable

问题描述:使用poi操作word时如何在有多个表格的word中定位到其中一个表格 大家好,本文将围绕一个有趣的事情展开说明,一个有趣的事情是一个很多人都想弄明白的事情,想搞清楚一个有趣的事情需要先了解以下几个事情。

怎样用poi在word中生成表格

xwpftable的相关图片

关键代码如下:

FileInputStream fileInputStream = new FileInputStream( soureFile);。

POIFSFileSystem pfs = new POIFSFileSystem( fileInputStream );。

HWPFDocument hwpf = new HWPFDocument(pfs);// make a HWPFDocument object。

OutputStream output = new FileOutputStream( targetFile );。

hwpf.write(output);// write to the target file。

output.close();。

(2)再word中插入表格。HWPF的情况:

Table tcDataTable = range.insertTableBefore( (short)column , row);//column and row列数和行数。

tcDataTable.getRow(i).getCell(j).getParagraph(0).getCharacterRun(0).insertBefore("插入i行j列的内容" );。

XWPF的情况:

String outputFile = "D:\\test.doc";。

XWPFDocument document = new XWPFDocument();。

XWPFTable tableOne = document.createTable();。

XWPFTableRow tableOneRowOne = tableOne.getRow(0);。

tableOneRowOne.getCell(0).setText("11");。

XWPFTableCell cell12 = tableOneRowOne.createCell();。

cell12.setText("12");。

// tableOneRowOne.addNewTableCell().setText("第1行第2列");。

// tableOneRowOne.addNewTableCell().setText("第1行第3列");。

// tableOneRowOne.addNewTableCell().setText("第1行第4列");。

XWPFTableRow tableOneRowTwo = tableOne.createRow();。

tableOneRowTwo.getCell(0).setText("21");。

tableOneRowTwo.getCell(1).setText("22");。

// tableOneRowTwo.getCell(2).setText("第2行第3列");。

XWPFTableRow tableOneRow3 = tableOne.createRow();。

tableOneRow3.addNewTableCell().setText("31");。

tableOneRow3.addNewTableCell().setText("32");。

FileOutputStream fOut;。

try {

fOut = new FileOutputStream(outputFile);。

document.write(fOut); 。

fOut.flush();

// 操作结束,关闭文件

fOut.close();

} catch (Exception e) {。

e.printStackTrace();。

java读取带格式word内容的相关图片

java读取带格式word内容

关键代码如下:

FileInputStream fileInputStream = new FileInputStream( soureFile);。

POIFSFileSystem pfs = new POIFSFileSystem( fileInputStream );。

HWPFDocument hwpf = new HWPFDocument(pfs);// make a HWPFDocument object。

OutputStream output = new FileOutputStream( targetFile );。

hwpf.write(output);// write to the target file。

output.close();。

(2)再word中插入表格。HWPF的情况:

Table tcDataTable = range.insertTableBefore( (short)column , row);//column and row列数和行数。

tcDataTable.getRow(i).getCell(j).getParagraph(0).getCharacterRun(0).insertBefore("插入i行j列的内容" );。

XWPF的情况:

String outputFile = "D:\\test.doc";。

XWPFDocument document = new XWPFDocument();。

XWPFTable tableOne = document.createTable();。

XWPFTableRow tableOneRowOne = tableOne.getRow(0);。

tableOneRowOne.getCell(0).setText("11");。

XWPFTableCell cell12 = tableOneRowOne.createCell();。

cell12.setText("12");。

// tableOneRowOne.addNewTableCell().setText("第1行第2列");。

// tableOneRowOne.addNewTableCell().setText("第1行第3列");。

// tableOneRowOne.addNewTableCell().setText("第1行第4列");。

XWPFTableRow tableOneRowTwo = tableOne.createRow();。

tableOneRowTwo.getCell(0).setText("21");。

tableOneRowTwo.getCell(1).setText("22");。

// tableOneRowTwo.getCell(2).setText("第2行第3列");。

XWPFTableRow tableOneRow3 = tableOne.createRow();。

tableOneRow3.addNewTableCell().setText("31");。

tableOneRow3.addNewTableCell().setText("32");。

FileOutputStream fOut;。

try {

fOut = new FileOutputStream(outputFile);。

document.write(fOut); 。

fOut.flush();

// 操作结束,关闭文件

fOut.close();

} catch (Exception e) {。

e.printStackTrace();。

java编程:有人做过导出word文件,并且word中附带excel文件的那种模式吗?的相关图片

java编程:有人做过导出word文件,并且word中附带excel文件的那种模式吗?

用jacob吧。。

/**

*@author eyuan。

*/

package per.eyuan.word2txt.core;。

import com.jacob.*;。

import com.jacob.com.*;。

import com.jacob.activeX.*;。

import java.io.*;。

import java.util.Scanner;。

public class Core {。

/**

* 实现转换的函数

* @param sourceFilesPath。

* @param destinationFilesPath。

* @param destinationFilesType。

* @return void。

* @see import com.jacob.activeX.*;。

*/

public static void change(String sourceFilesPath,String destinationFilesPath,int destinationFilesType){。

//使用word文件所在的目录(源路径)建立目录文件。

File sourcePathFile=new File(sourceFilesPath);。

//取得word文件(源文件列表)

File sourceFilesList[]=sourcePathFile.listFiles();。

System.out.println("共有"+sourceFilesList.length+"个文件(文件夹)");。

//指定要转换的文件所在的目录下,如果有子目录,

//则进入子目录,继续查找word文档并将其转换,

//直到将指定目录下的所有word文档转换完。

//子目录名

String sourceChildPath=new String("");。

//保持原来的层次关系,将子目录下的文件存放在新建的子目录中。

String destiNationChildPath=new String("");。

//检索文件,过滤掉非word文件,通过扩展名过滤。

for(int i=0;i<sourceFilesList.length;i++){。

//排除掉子文件夹

if(sourceFilesList[i].isFile()){。

System.out.println("第"+(i+1)+"个文件:");。

//取得文件全名(包含扩展名)

String fileName=sourceFilesList[i].getName();。

String fileType=new String(""); 。

//取得文件扩展名

fileType=fileName.substring((fileName.length()-4), fileName.length());。

//word2007-2010扩展名为docx。

//判断是否为word2007-2010文档,及是否以docx为后缀名。

if(fileType.equals("docx")){。

System.out.println("正在转换。。。");。

//输出word文档所在路劲。

System.out.println("目录:"+sourceFilesPath);。

//输出word文档名。

System.out.println("文件名:"+fileName);。

//System.out.println(fileName.substring(0, (fileName.length()-5)));。

//核心函数

//启动word

ActiveXComponent app=new ActiveXComponent("Word.Application");。

//要转换的文档的全路径(所在文件夹+文件全名)

String docPath=sourceFilesPath+"\\"+fileName;。

//转换后的文档的全路径(所在文件夹+文件名)

String othersPath=destinationFilesPath+"\\"+fileName.substring(0,(fileName.length()-5));。

//

String inFile=docPath;。

String outFile=othersPath;。

//

boolean flag=false;。

//核心代码

try{

//设置word可见性。

app.setProperty("Visible", new Variant(false));。

//

Dispatch docs=app.getProperty("Documents").toDispatch();。

//打开word文档 。

Dispatch doc=Dispatch.invoke(docs, "Open", Dispatch.Method, new Object[]{inFile,new Variant(false),new Variant(true)}, new int[1]).toDispatch();。

//0:Microsoft Word 97 - 2003 文档 (.doc)。

//1:Microsoft Word 97 - 2003 模板 (.dot)。

//2:文本文档 (.txt)。

//3:文本文档 (.txt)。

//4:文本文档 (.txt)。

//5:文本文档 (.txt)。

//6:RTF 格式 (.rtf)。

//7:文本文档 (.txt)。

//8:HTML 文档 (.htm)(带文件夹)。

//9:MHTML 文档 (.mht)(单文件)。

//10:MHTML 文档 (.mht)(单文件)。

//11:XML 文档 (.xml)。

//12:Microsoft Word 文档 (.docx)。

//13:Microsoft Word 启用宏的文档 (.docm)。

//14:Microsoft Word 模板 (.dotx)。

//15:Microsoft Word 启用宏的模板 (.dotm)。

//16:Microsoft Word 文档 (.docx)。

//17:PDF 文件 (.pdf)。

//18:XPS 文档 (.xps)。

//19:XML 文档 (.xml)。

//20:XML 文档 (.xml)。

//21:XML 文档 (.xml)。

//22:XML 文档 (.xml)。

//23:OpenDocument 文本 (.odt)。

//24:WTF 文件 (.wtf)。

//另存为指定格式的文档。

Dispatch.invoke(doc, "SaveAs", Dispatch.Method, new Object[]{outFile,new Variant(destinationFilesType)}, new int[1]);。

//

Variant file=new Variant(false);。

//关闭文档

Dispatch.call(doc, "Close",file);。

//

flag=true;。

}catch(Exception e){。

e.printStackTrace();。

System.out.println("文档转换失败");。

}finally{

app.invoke("Quit",new Variant[]{});。

}

System.out.println("转换完毕"); 。

}

//word97-2003扩展名为doc。

//判断是否为word2003-2007文档,及是否以doc为后缀名。

else if(fileType.equals(".doc")){。

System.out.println("正在转换。。。");。

//输出word文档所在路劲。

System.out.println("目录:"+sourceFilesPath);。

//输出word文档名。

System.out.println("文件名:"+fileName);。

//System.out.println(fileName.substring(0, (fileName.length()-4)));。

//核心函数

//启动word

ActiveXComponent app=new ActiveXComponent("Word.Application");。

//要转换的文档的全路径(所在文件夹+文件全名)

String docPath=sourceFilesPath+"\\"+fileName;。

//转换后的文档的全路径(所在文件夹+文件名)

String othersPath=destinationFilesPath+"\\"+fileName.substring(0,(fileName.length()-4));。

//

String inFile=docPath;。

String outFile=othersPath;。

//

boolean flag=false;。

//核心代码

try{

//设置word可见性。

app.setProperty("Visible", new Variant(false));。

//

Dispatch docs=app.getProperty("Documents").toDispatch();。

//打开word文档 。

Dispatch doc=Dispatch.invoke(docs, "Open", Dispatch.Method, new Object[]{inFile,new Variant(false),new Variant(true)}, new int[1]).toDispatch();。

//另存为指定格式的文档。

Dispatch.invoke(doc, "SaveAs", Dispatch.Method, new Object[]{outFile,new Variant(destinationFilesType)}, new int[1]);。

//

Variant file=new Variant(false);。

//关闭文档

Dispatch.call(doc, "Close",file);。

//

flag=true;。

}catch(Exception e){。

e.printStackTrace();。

System.out.println("文档转换失败");。

}finally{

app.invoke("Quit",new Variant[]{});。

}

System.out.println("转换完毕"); 。

}

//文档的扩展名不是doc或docx。

else{

System.out.println("非word文档");。

}

}

//如果是子文件夹,则递归遍历,将所有的word文档转换。

else{

//

sourceChildPath=sourceFilesPath;。

//该文件是目录

sourceChildPath=sourceChildPath+"\\"+sourceFilesList[i].getName()+"\\";。

System.out.println("源文件所在路径:"+sourceChildPath);。

//修改目标文件夹,保持原来的层级关系。

destiNationChildPath=destinationFilesPath;。

destiNationChildPath=destinationFilesPath+"\\"+sourceFilesList[i].getName()+"\\";。

System.out.println("转换后文件所在路径"+destiNationChildPath);。

//

mkdir(destiNationChildPath);。

//递归遍历所有目录,查找word文档,并将其转换。

change(sourceChildPath, destiNationChildPath,destinationFilesType);。

}

}

System.out.println("所有文档转换完毕");。

}

/**

 * 用于创建文件夹的方法 。

 * @param mkdirName 。

 */

public static void mkdir(String mkdirName){。

try{

//使用指定的路径创建文件对象。

File dirFile = new File(mkdirName); 。

//

boolean bFile = dirFile.exists();。

//已经存在文件夹,操作???提醒是否要替换。

if( bFile == true ) { 。

System.out.println("已经存在文件夹"+mkdirName); 。

}

//不存在该文件夹,则新建该目录。

else{

System.out.println("新建文件夹"+mkdirName); 。

bFile = dirFile.mkdir(); 。

if( bFile == true ){。

System.out.println("文件夹创建成功"); 。

}else{

System.out.println(" 文件夹创建失败,清确认磁盘没有写保护并且空件足够"); 。

System.exit(1); 。

}

}

}catch(Exception err){。

System.err.println("ELS - Chart : 文件夹创建发生异常"); 。

err.printStackTrace(); 。

}finally{

}

}

/**

* 判断某个文件夹是否存在

* @param path

*/

public static boolean isPathExist(String path){。

boolean isPathExist=false;。

try{

File pathFile = new File(path);。

if(pathFile.exists())。

isPathExist= true;。

else

isPathExist= false;。

}catch(Exception err){。

err.printStackTrace(); 。

}

return isPathExist;。

}

/**

* 主函数

*/

public static void main(String[] args){。

Scanner sc=new Scanner(System.in);。

//源文档所在路径

String sourceFilesPath=""; 。

// String inputSourcePath="";。

// boolean sourcePathFlag=true;。

// System.out.println("请输入要转换文档所在的文件夹");。

// while(sourcePathFlag){。

// inputSourcePath=sc.next();。

// if(!isPathExist(inputSourcePath))。

// System.out.println("源路径不存在,请输入正确的路径");。

// else

// sourcePathFlag=false;。

// }

// sourceFilesPath=inputSourcePath;。

sourceFilesPath="D:\\word";。

//目标文档要存放的目录

String destinationFilesPath="";。

// String inputdestinationPath="";。

// boolean destinationPathFlag=true;。

// System.out.println("请输入转换后文档要存放的文件夹");。

// while(destinationPathFlag){。

// inputdestinationPath=sc.next();。

// //目标文件不存在时,是否要提示用户创建文件。

// if(!isPathExist(inputdestinationPath))。

// System.out.println("目标路径不存在,请输入正确的路径");。

// else

// destinationPathFlag=false;。

// }

// destinationFilesPath=inputdestinationPath; 。

destinationFilesPath="D:\\txt";。

//选择要转换的类型

int destinationFilesType=0;。

int inputNumber=0;。

boolean numFlag=true;。

System.out.println("您要将word文档转换为哪种文档格式?");。

System.out.println("0:doc \t 2:txt \t 8:html \t 9:htm \t 11:xml \t 12:docx \t 17:pdf \t 18:xps");。

while(numFlag){。

inputNumber=sc.nextInt();。

if(inputNumber!=2&&inputNumber!=8&&inputNumber!=9&&inputNumber!=11&&inputNumber!=12&&inputNumber!=17){。

System.out.println("您的输入有误,请输入要转换的文档类型前的数字");。

}else

numFlag=false;。

}

destinationFilesType=inputNumber;。

//实行转换

change(sourceFilesPath, destinationFilesPath,destinationFilesType);。

//测试各种类型转换

// for(int i=0;i<25;i++){。

// destinationFilesType=i;。

// System.out.println("文件类型"+destinationFilesType); 。

// System.out.println("存放目录:"+destinationFilesPath+"\\"+i);。

// mkdir(destinationFilesPath+"\\"+i);。

// change(sourceFilesPath, destinationFilesPath+"\\"+i,destinationFilesType);。

// }

}

这个我刚用的。。格式都能带过来的。 你自己再下载个 jacob的包和dll文件。

为什么字符串abc\ndef写入word后,abc和def没有换行?的相关图片

为什么字符串abc\ndef写入word后,abc和def没有换行?

假如是.docx文件,用XWPFDocument 这个就可以,poi里面的类。

然后是XWPFTable,XWPFTableRow,XWPFTableCell类。

分别获得表格,表格的行,表格的格。

doc就多了,网上随便找

但是假如又有段落还有表格,我也卡在这了,假如找到方法,麻烦提醒我一下!!

NPOI 操作word 添加表格 如何设置表格的字体,例如宋体加粗什么的 找了好久没找到

1. 首先在需要强制换行的单元格里使用poi的样式,并且把样式设定为自动换行 。

# HSSFCellStyle cellStyle=workbook.createCellStyle(); 。

# cellStyle.setWrapText(true); 。

# cell.setCellStyle(cellStyle); 。

2. 其次是在需要强制换行的单元格,使用\就可以实再强制换行 。

1. HSSFCell cell = row.createCell((short)0); 。

2. cell.setCellStyle(cellStyle); cell.setCellValue(new HSSFRichTextString("hello\r\n world!")); 。

这样就能实现强制换行,

换行后的效里是单元格里强制换行。

hello

world!

原文地址:http://www.qianchusai.com/xwpftable.html

偷钱作文800字,关于偷钱的作文600字

偷钱作文800字,关于偷钱的作文600字

网件r6300v2设置,网件r6300v2设置无线桥接

网件r6300v2设置,网件r6300v2设置无线桥接

英文this的拼读,this的英语单词怎么读音

英文this的拼读,this的英语单词怎么读音

周璐-40,周璐璐东京奥运会

周璐-40,周璐璐东京奥运会

表里的生物作文600字,表里的生物作文600字怎么写

表里的生物作文600字,表里的生物作文600字怎么写

14229与15031

14229与15031

北京市海淀区

北京市海淀区

电视酷喵广告怎么屏蔽,电视出现酷喵怎么取消放都广告

电视酷喵广告怎么屏蔽,电视出现酷喵怎么取消放都广告

小学作文审题立意教案,作文的审题与立意教学实录

小学作文审题立意教案,作文的审题与立意教学实录

寻找秋天三年级300字作文,寻找秋天三年级作文怎么写

寻找秋天三年级300字作文,寻找秋天三年级作文怎么写