java 读取doc文件并且java多线程写入数据库库下载保持原有格式?

用java代码把内容写到Word文档?_百度知道
用java代码把内容写到Word文档?
答题抽奖
首次认真答题后
即可获得3次抽奖机会,100%中奖。
采纳数:42
获赞数:119
import java.io.BufferedRimport java.io.BufferedWimport java.io.Fimport java.io.FileInputSimport java.io.FileOutputSimport java.io.FileRimport java.io.InputStreamRimport java.io.OutputStreamWpublic class Test {public static void main(String[] args) {try{FileInputStream fr=new FileInputStream(&test/123.txt&);InputStreamReader af=new InputStreamReader(fr);BufferedReader bf=new BufferedReader(af);FileOutputStream fo=new FileOutputStream(&test/456.doc&);OutputStreamWriter osw=new OutputStreamWriter(fo);BufferedWriter bw=new BufferedWriter(osw);String line=bf.readLine();while(line!=null){System.out.println(line);bw.write(line);bw.newLine();bw.flush();line=bf.readLine();} }catch (Exception e) {e.printStackTrace();}}}test/123.txt里的内容写到test/456.doc下了,在你的java src中建一个test文件夹,这里是相对路径
sdjfksdkjfklds
sdjfksdkjfklds
擅长:暂未定制
使用java的输入输出流,进行读取,然后写入到文档中。
专注于此刻
来自电脑网络类芝麻团
专注于此刻
采纳数:27
获赞数:64
参与团队:
public static void outputString1(String str, File file) {
out = new PrintWriter(file);
byte bytes[] = str.getBytes();
int i = 0;
while ((bytes.length - i) != 0) {
out.write(bytes[i]);
out.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} }* @param str
要写入文件的字符串
* @param file
要写入字符串的文件名,如new File(&C:/test.doc&)
为你推荐:
其他类似问题
您可能关注的内容
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。java New 了一个 doc文件对象 ,我想把他另存为docx文件 然后保存到本地,怎么弄,求高手帮助_百度知道
java New 了一个 doc文件对象 ,我想把他另存为docx文件 然后保存到本地,怎么弄,求高手帮助
答题抽奖
首次认真答题后
即可获得3次抽奖机会,100%中奖。
就是用的那个org.apache.poi读取word文件出现错误,我想用java打开它以后把他另存一个新文件,读取的时候报那个org.apache.poi.poifs.filesystem.NotOLE2FileException: Inva read 0x6D83C, expected 0xE11AB1A1E011CFD0
采纳数:467
获赞数:475
看你用的是哪个api。
就是用的那个org.apache.poi读取word文件出现错误,我想用java打开它以后把他另存一个新文件,读取的时候报那个org.apache.poi.poifs.filesystem.NotOLE2FileException: Inva read 0x6D83C, expected 0xE11AB1A1E011CFD0
解决了么,我也是这个问题。。。
1条折叠回答
为你推荐:
其他类似问题
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。博客分类:
网上关于java读写word的文档很多,没找到最好的,我抄了一篇,是在e盘新建一个hello.docx文档里面写入Hello, from Office 2007!文字作为标识,以hello.docx为模板在e盘下用java新建一个e:\\response.docx,写入哈哈,终于可以用java写word了,Hello, Office 2007, from Java6!
import static org.junit.Assert.assertE
import java.io.ByteArrayOutputS
import java.io.F
import java.io.FileOutputS
import java.io.IOE
import java.io.InputS
import java.util.E
import java.util.zip.ZipE
import java.util.zip.ZipE
import java.util.zip.ZipF
import java.util.zip.ZipOutputS
import javax.xml.parsers.DocumentBuilderF
import javax.xml.parsers.ParserConfigurationE
import javax.xml.transform.T
import javax.xml.transform.TransformerConfigurationE
import javax.xml.transform.TransformerE
import javax.xml.transform.TransformerF
import javax.xml.transform.dom.DOMS
import javax.xml.transform.stream.StreamR
import org.junit.T
import org.w3c.dom.D
import org.w3c.dom.E
import org.xml.sax.SAXE
public class InputToword {
@Test public void modifyDocumentAndSave()throws IOException, ZipException,
SAXException,ParserConfigurationException,TransformerException,TransformerConfigurationException
//读取e盘下的hello.docx文档
ZipFile docxFile =new ZipFile(new File("e:\\hello.docx"));
//解压缩后获得里面和内容相关的xml,word文档是可以解压的,大家可以解压了试试
ZipEntry documentXML =docxFile.getEntry("word/document.xml");
InputStream documentXMLIS =docxFile.getInputStream(documentXML);
DocumentBuilderFactory dbf =DocumentBuilderFactory.newInstance();
Document doc =dbf.newDocumentBuilder().parse(documentXMLIS);
//获得文档里相关的节点
Element docElement = doc.getDocumentElement();
assertEquals("w:document", docElement.getTagName());
Element bodyElement = (Element)docElement.getElementsByTagName("w:body").item(0);
assertEquals("w:body", bodyElement.getTagName());
Element pElement = (Element)bodyElement.getElementsByTagName("w:p").item(0);
assertEquals("w:p", pElement.getTagName());
Element rElement = (Element)pElement.getElementsByTagName("w:r").item(0);
assertEquals("w:r", rElement.getTagName());
Element tElement = (Element)rElement.getElementsByTagName("w:t").item(0);
assertEquals("w:t", tElement.getTagName());
//查找文档中的Hello, from Office 2007!文字部分
assertEquals("Hello, from Office 2007!",tElement.getTextContent());
//写入新的内容
tElement.setTextContent("哈哈,终于可以用java写word了,Hello, Office 2007, from Java6!");
Transformer t =TransformerFactory.newInstance().newTransformer();
ByteArrayOutputStream baos =new ByteArrayOutputStream();
t.transform(new DOMSource(doc),
new StreamResult(baos));
//创建新的要输出的word文档,按钮原来word文档的内容写入新的文档中。
ZipOutputStream docxOutFile = new ZipOutputStream(new FileOutputStream("e:\\response.docx"));
Enumeration entriesIter =docxFile.entries();
while (entriesIter.hasMoreElements())
ZipEntry entry = (ZipEntry) entriesIter.nextElement();
if (entry.getName().equals("word/document.xml"))
byte[] data = baos.toByteArray();
docxOutFile.putNextEntry(new ZipEntry(entry.getName()));
docxOutFile.write(data, 0, data.length);
docxOutFile.closeEntry();
InputStream incoming =docxFile.getInputStream(entry);
byte[] data = new byte[1024 * 16];
int readCount =incoming.read(data, 0, data.length);
docxOutFile.putNextEntry(new ZipEntry(entry.getName()));
docxOutFile.write(data, 0, readCount);
docxOutFile.closeEntry();
docxOutFile.close();
测试的时候,点右键,Run As 用jUnit Test测试,运行完成后会生成新的名字为e:\\response.docx的word文档。
fengzheng0603
浏览: 55476 次
来自: 北京
有的东西提出来也不会有结果,那么隐含就不会有人提它,有措施未必 ...
找了好久才找到这个方法
感谢楼主
(window.slotbydup=window.slotbydup || []).push({
id: '4773203',
container: s,
size: '200,200',
display: 'inlay-fix'java读取world文件,把world文件中的内容,原样输出到页面上。 - ITeye问答
例如
&&& a.doc存放在d盘根目录。 里面有两段文字,第一段字体为红色,第二段字体为蓝色。
想要达到的效果
&&&
&&& 读取a.doc里面的内容,在页面上显示出来。第一段字体为红色,第二段字体为蓝色。
这么复杂!你先用程序调用office本身的转换功能,将doc文件转换成html文件,不就OK啦?
POI,处理可以。样式在Java代码中添加就可以。给了一个例子这个是Excel的。
package cn.com.my.
import java.io.F
import java.io.FileInputS
import java.io.FileOutputS
import java.io.IOE
import java.sql.C
import java.sql.ResultS
import java.sql.SQLE
import org.apache.log4j.L
import org.apache.poi.hssf.usermodel.HSSFC
import org.apache.poi.hssf.usermodel.HSSFR
import org.apache.poi.hssf.usermodel.HSSFS
import org.apache.poi.hssf.usermodel.HSSFW
import org.apache.poi.poifs.filesystem.POIFSFileS
* DB2Excel 工具类
public class DB2ExcelUtils {
private static String systemSeparator = System.getProperty("file.separator");
* 编辑Excel POI
* @param db
* @param conn
* @param file
* @param strSQL
* @param logger
* @throws IOException
* @throws BiffException
* @throws SQLException
* @throws WriteException
* @throws InterruptedException
public static void editExcelPOI_WXNL(String newPath,File file,Logger logger) throws IOException,
SQLException, InterruptedException {
String newFilePath = "";
logger.debug("DB2Excel--editExcelPOI--file=" + file.getName() + ";编辑开始");
// 取得新数据文件
newFilePath = newPath + systemSeparator + file.getName();
File outFile = new File(newFilePath);
logger.debug("DB2Excel--editExcelPOI--取得新数据文件file=" + outFile.getPath());
if(!outFile.exists()){
outFile.createNewFile();
logger.debug("DB2Excel--editExcelPOI--file=" + outFile.getName() + ";新建文件");
FileOutputStream templetOut = new FileOutputStream(outFile);//选择目标文件
POIFSFileSystem templetIn = new POIFSFileSystem(new FileInputStream(file));//读入模版
HSSFWorkbook wbTemplet = new HSSFWorkbook(templetIn);//创建HSSFWorkbook
HSSFSheet sheetTemplet = wbTemplet.getSheetAt(0);//创建HSSFSheet
//int ic = 0; // 列
//int ir = 0; // 行
//int ic = 9;//9\10\11\13\14\15\
for(int i = 13; i & 18; i++) {
switch(i) {
//ic = 15;
int ic = 13;
HSSFRow hr = sheetTemplet.getRow(7);
HSSFCell hc = hr.getCell((short)ic);
//hc.setCellType(HSSFCell.CELL_TYPE_STRING);
hc.setCellValue(""); // 单元格赋值
//写入Excel对象
wbTemplet.write(templetOut);
// 关闭输出流
templetOut.close();
logger.debug("DB2Excel--editExcelPOI--file=" + file.getPath() + ";编辑正常结束");
是不是可以把那个doc文件直接嵌入到页面上呢,我之前做的一个项目就是把一个Excel文件直接嵌入到了页面上的
可以使用jacob 这个开源功能很强大的,
你有读取itext的包没有 我可以发给你 用来操作word的。
呵呵,就用在线编辑器好了,
什么fckeditor,kindeditor,xheditor一堆东西。
[img][/img][url][/url]&&&&&&&&&&&&&&&&&& [align=left][/align][size=xx-small][/size][/color][color=brown]
如果需要样式的话,需要word阅读插件,之前使用过神州的一个产品。直接在线解析word文档
解析格式这条路不可走, 费了半天劲, 你还不一定能做到完美, 而且, word的格式到页面还有一个转换过程, 不是所有的东西都能轻易的在页面上重现. 这绝对不是一个简单的事情.
反过来, 在浏览器中嵌入word编辑器或阅读器是一种更简单且更好的选择, 现在的N多网站不都是这样的吗? 找个通用的FLASH嵌入可以跨浏览器, 如果你不要求跨浏览器, 只在IE上, 那更简单, 直接嵌入ACTIVE控件, 可以直接在网页上编辑word, 就和你直接打开word完全一样.
jacob
读取 另存为html 再显示在页面上 就可以了
确实格式你控制不了,楼上说的jacob能做到你想要的结果,但是这样会有乱码。
用一个叫batik的东西来读文字没问题,word里面有图片的话图片读不出来;这个问题我暂时还没研究出来,不过文字是没一点问题的。
可以考虑一下专门的OFFICE文档读取插件,网上搜搜看,可以找到。
POI 解析word内容,但是没法解析格式。
读出来你要自己控制格式。
试试 直接用文件流读word,然后设置 response ContentType,以html输出。
已解决问题
未解决问题java读取doc,pdf问题。_百度知道
java读取doc,pdf问题。
目标:java读取doc,pdf文件要求:不仅可以读取文件中的文本,也可以读取文件中的图片。需要用到的jar包,和相关方法。或者说明文档。已经用到的jar包:tm-extractors-0.4.jar,PDFBo...
目标:java读取doc,pdf文件要求:不仅可以读取文件中的文本,也可以读取文件中的图片。需要用到的jar包,和相关方法。或者说明文档。已经用到的jar包:tm-extractors-0.4.jar,PDFBox-0.7.2.jar,PDFBox-0.7.2-log4j.jar,fontbox-1.8.2.jar,pdfbox-1.8.2.jar
答题抽奖
首次认真答题后
即可获得3次抽奖机会,100%中奖。
黑屋的寂寞
黑屋的寂寞
采纳数:314
获赞数:2034
PDFBox是一个开源的对pdf文件进行操作的库。 PDFBox-0.7.3.jar加入classpath。同时FontBox1.0.jar加入classpath,否则报错import&java.io.FileInputS&&import&java.io.FileNotFoundE&&import&java.io.IOE&&&&import&org.pdfbox.pdfparser.PDFP&&import&org.pdfbox.pdmodel.PDD&&import&org.pdfbox.util.PDFTextS&&&&public&class&PdfReader&{&&&&&&/**&&&&&&*&simply&reader&all&the&text&from&a&pdf&file.&&&&&&&*&You&have&to&deal&with&the&format&of&the&output&text&by&yourself.&&&&&&*&&&&&&&*&@param&pdfFilePath&file&path&&&&&&*&@return&all&text&in&the&pdf&file&&&&&&*/&&&&&&public&static&String&getTextFromPDF(String&pdfFilePath)&&&&&&&{&&&&&&&&&&String&result&=&&&&&&&&&&&FileInputStream&is&=&&&&&&&&&&&PDDocument&document&=&&&&&&&&&&&try&{&&&&&&&&&&&&&&is&=&new&FileInputStream(pdfFilePath);&&&&&&&&&&&&&&PDFParser&parser&=&new&PDFParser(is);&&&&&&&&&&&&&&parser.parse();&&&&&&&&&&&&&&document&=&parser.getPDDocument();&&&&&&&&&&&&&&PDFTextStripper&stripper&=&new&PDFTextStripper();&&&&&&&&&&&&&&result&=&stripper.getText(document);&&&&&&&&&&}&catch&(FileNotFoundException&e)&{&&&&&&&&&&&&&&//&TODO&Auto-generated&catch&block&&&&&&&&&&&&&&e.printStackTrace();&&&&&&&&&&}&catch&(IOException&e)&{&&&&&&&&&&&&&&//&TODO&Auto-generated&catch&block&&&&&&&&&&&&&&e.printStackTrace();&&&&&&&&&&}&finally&{&&&&&&&&&&&&&&if&(is&!=&null)&{&&&&&&&&&&&&&&&&&&try&{&&&&&&&&&&&&&&&&&&&&&&is.close();&&&&&&&&&&&&&&&&&&}&catch&(IOException&e)&{&&&&&&&&&&&&&&&&&&&&&&//&TODO&Auto-generated&catch&block&&&&&&&&&&&&&&&&&&&&&&e.printStackTrace();&&&&&&&&&&&&&&&&&&}&&&&&&&&&&&&&&}&&&&&&&&&&&&&&if&(document&!=&null)&{&&&&&&&&&&&&&&&&&&try&{&&&&&&&&&&&&&&&&&&&&&&document.close();&&&&&&&&&&&&&&&&&&}&catch&(IOException&e)&{&&&&&&&&&&&&&&&&&&&&&&//&TODO&Auto-generated&catch&block&&&&&&&&&&&&&&&&&&&&&&e.printStackTrace();&&&&&&&&&&&&&&&&&&}&&&&&&&&&&&&&&}&&&&&&&&&&}&&&&&&&&&&return&&&&&&&}&&&&&&public&&static&void&main(String[]&args)&&&&&&{&&&&&&&&&&String&str=PdfReader.getTextFromPDF(&C:\\Read.pdf&);&&&&&&&&&&System.out.println(str);&&&&&&&&&&&&}&&}代码2:import&java.io.F&&import&java.io.FileOutputS&&import&java.io.OutputStreamW&&import&java.io.W&&import&java.net.MalformedURLE&&import&java.net.URL;&&import&org.pdfbox.pdmodel.PDD&&import&org.pdfbox.util.PDFTextS&&public&class&PDFReader&{&&&public&void&readFdf(String&file)&throws&Exception&{&&&&&&&boolean&sort&=&&&&&&&&String&pdfFile&=&&&&&String&textFile&=&&&&&&String&encoding&=&&UTF-8&;&&&&&&int&startPage&=&1;&&&&&&int&endPage&=&Integer.MAX_VALUE;&&&&&&&Writer&output&=&&&&&&&&PDDocument&document&=&&&&&try&{&&&&&try&{&&&&&&//&首先当作一个URL来装载文件,如果得到异常再从本地文件系统//去装载文件&&&&&&URL&url&=&new&URL(pdfFile);&&&&&//注意参数已不是以前版本中的URL.而是File。&&&&&&document&=&PDDocument.load(pdfFile);&&&&&&//&获取PDF的文件名&&&&&&String&fileName&=&url.getFile();&&&&&&//&以原来PDF的名称来命名新产生的txt文件&&&&&&if&(fileName.length()&&&4)&{&&&&&&&File&outputFile&=&new&File(fileName.substring(0,&fileName&&&&&&&&&.length()&-&4)&&&&&&&&&+&&.txt&);&&&&&&&textFile&=&outputFile.getName();&&&&&&}&&&&&}&catch&(MalformedURLException&e)&{&&&&&&//&如果作为URL装载得到异常则从文件系统装载&&&&&//注意参数已不是以前版本中的URL.而是File。&&&&&&document&=&PDDocument.load(pdfFile);&&&&&&if&(pdfFile.length()&&&4)&{&&&&&&&textFile&=&pdfFile.substring(0,&pdfFile.length()&-&4)&&&&&&&&&+&&.txt&;&&&&&&}&&&&&}&&&&&&&&output&=&new&OutputStreamWriter(new&FileOutputStream(textFile),&&&&&&&encoding);&&&&&&&PDFTextStripper&stripper&=&&&&&&stripper&=&new&PDFTextStripper();&&&&&//&设置是否排序&&&&&stripper.setSortByPosition(sort);&&&&&//&设置起始页&&&&&stripper.setStartPage(startPage);&&&&&//&设置结束页&&&&&stripper.setEndPage(endPage);&&&&&//&调用PDFTextStripper的writeText提取并输出文本&&&&&stripper.writeText(document,&output);&&&&}&finally&{&&&&&if&(output&!=&null)&{&&&&&&//&关闭输出流&&&&&&output.close();&&&&&}&&&&&if&(document&!=&null)&{&&&&&&//&关闭PDF&Document&&&&&&document.close();&&&&&}&&&&}&&&}&&&/**&&&*&@param&args&&&*/&&&public&static&void&main(String[]&args)&{&&&&//&TODO&Auto-generated&method&stub&&&&&&&PDFReader&pdfReader&=&new&PDFReader();&&&&try&{&&&&&//&取得E盘下的SpringGuide.pdf的内容&&&&&pdfReader.readFdf(&C:\\Read.pdf&);&&&&}&catch&(Exception&e)&{&&&&&e.printStackTrace();&&&&}&&&}&&}2、抽取支持中文的pdf文件-xpdfxpdf是一个开源项目,我们可以调用他的本地方法来实现抽取中文pdf文件。补丁包:按照readme放好中文的patch,就可以开始写调用本地方法的java程序了。下面是一个如何调用的例子:import&java.io.*;&&/**&*&&p&Title:&pdf&extraction&/p&&*&&p&Description:&email:chris@matrix.org.cn&/p&&*&&p&Copyright:&Matrix&Copyright&(c)&2003&/p&&*&&p&Company:&Matrix.org.cn&/p&&*&@author&chris&*&@version&1.0,who&use&this&example&pls&remain&the&declare&*/&&&&&&public&class&PdfWin&{&&public&PdfWin()&{&&}&&public&static&void&main(String&args[])&throws&Exception&&{&&String&PATH_TO_XPDF=&C:Program&Filesxpdfpdftotext.exe&;&&String&filename=&c:a.pdf&;&&String[]&cmd&=&new&String[]&{&PATH_TO_XPDF,&&-enc&,&&UTF-8&,&&-q&,&filename,&&-&};&&Process&p&=&Runtime.getRuntime().exec(cmd);&&BufferedInputStream&bis&=&new&BufferedInputStream(p.getInputStream());&&InputStreamReader&reader&=&new&InputStreamReader(bis,&&UTF-8&);&&StringWriter&out&=&new&StringWriter();&&char&[]&buf&=&new&char[10000];&&int&&&while((len&=&reader.read(buf))&=&0)&{&&//out.write(buf,&0,&len);&&System.out.println(&the&length&is&+len);&&}&&reader.close();&&String&ts=new&String(buf);&&System.out.println(&the&str&is&+ts);&&}&&}
采纳数:70
获赞数:177
环境准备txt利用common-iopdf利用pdfbox剩下的用POI关于POI,读取xls没啥特别的,主要是读取doc和ppt,需要下载poi源代码,然后将poi-src-3.7-.zip\poi-3.7\src\scratchpad\src下的所有文件copy到工程,或者自己封装个jar包jar包依赖code如下:import java.io.BufferedInputSimport java.io.Fimport java.io.FileInputSimport java.io.FileNotFoundEimport java.io.IOEimport java.text.NumberFimport org.apache.commons.io.FileUimport org.apache.pdfbox.pdfparser.PDFPimport org.apache.pdfbox.pdmodel.PDDimport org.apache.pdfbox.util.PDFTextSimport org.apache.poi.POIXMLDimport org.apache.poi.POIXMLTextEimport org.apache.poi.hslf.HSLFSlideSimport org.apache.poi.hslf.model.Simport org.apache.poi.hslf.model.TextRimport org.apache.poi.hslf.usermodel.RichTextRimport org.apache.poi.hslf.usermodel.SlideSimport org.apache.poi.hssf.usermodel.HSSFCimport org.apache.poi.hssf.usermodel.HSSFRimport org.apache.poi.hssf.usermodel.HSSFSimport org.apache.poi.hssf.usermodel.HSSFWimport org.apache.poi.hwpf.extractor.WordEimport org.apache.poi.openxml4j.exceptions.OpenXML4JEimport org.apache.poi.openxml4j.opc.OPCPimport org.apache.poi.ss.usermodel.Cimport org.apache.poi.xslf.extractor.XSLFPowerPointEimport org.apache.poi.xssf.usermodel.XSSFCimport org.apache.poi.xssf.usermodel.XSSFRimport org.apache.poi.xssf.usermodel.XSSFSimport org.apache.poi.xssf.usermodel.XSSFWimport org.apache.poi.xwpf.extractor.XWPFWordEimport org.apache.xmlbeans.XmlEpublic class ReadFileUtils {/** * @param args * @throws Exception */public static void main(String[] args) throws Exception {ReadFileUtils rf = new ReadFileUtils();String s = &&;// s = rf.readTXT(&E:/itsm文档的后缀名分析报告2.txt&);// s = rf.readPDF(&E:/memcached全面剖析.pdf&);// s = rf.readEXCEL(&E:/副本工作量及成本模板.xls&);// s = rf.readEXCEL2007(&E:/功能点估算方案.xlsx&);// s = rf.readWORD(&E:/pms中文.doc&);// s = rf.readWORD2007(&E:/功能点估算方法.docx&);//s = rf.readPPT(&E:/精细化管理信息系统项目汇报v1.0.ppt&);s = rf.readPPT2007(&e:/精细化管理信息系统项目汇报v1.0.pptx&);System.out.println(s);}// 读取pptpublic String readPPT(String file) throws IOException {StringBuilder sb = new StringBuilder();SlideShow ppt = new SlideShow(new HSLFSlideShow(file));Slide[] slides = ppt.getSlides();//提取文本信息 for (Slide each : slides) {
TextRun[] textRuns = each.getTextRuns();
for (int i=0 ;i& textRuns. i++ ) {
RichTextRun[] richTextRuns = textRuns.getRichTextRuns();
for (int j = 0; j & richTextRuns. j++) {
sb.append(richTextRuns[j].getText());
sb.append(&\n&);
sb.append(&\n&);}return sb.toString();}// 读取pptxpublic String readPPT2007(String file) throws IOException, XmlException, OpenXML4JException {
return new XSLFPowerPointExtractor(POIXMLDocument.openPackage(file)).getText();
}// 读取xls文件public String readEXCEL(String file) throws IOException {StringBuilder content = new StringBuilder();HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(file));// 创建对Excel工作簿文件的引用for (int numSheets = 0; numSheets & workbook.getNumberOfSheets(); numSheets++) {if (null != workbook.getSheetAt(numSheets)) {HSSFSheet aSheet = workbook.getSheetAt(numSheets);// 获得一个sheetfor (int rowNumOfSheet = 0; rowNumOfSheet &= aSheet.getLastRowNum(); rowNumOfSheet++) {if (null != aSheet.getRow(rowNumOfSheet)) {HSSFRow aRow = aSheet.getRow(rowNumOfSheet); // 获得一个行for (short cellNumOfRow = 0; cellNumOfRow &= aRow.getLastCellNum(); cellNumOfRow++) {if (null != aRow.getCell(cellNumOfRow)) {HSSFCell aCell = aRow.getCell(cellNumOfRow);// 获得列值if (this.convertCell(aCell).length() & 0) {content.append(this.convertCell(aCell));}}content.append(&\n&);}}}}}return content.toString();}// 读取xlsx文件public String readEXCEL2007(String file) throws IOException {StringBuilder content = new StringBuilder();XSSFWorkbook workbook = new XSSFWorkbook(file);for (int numSheets = 0; numSheets & workbook.getNumberOfSheets(); numSheets++) {if (null != workbook.getSheetAt(numSheets)) {XSSFSheet aSheet = workbook.getSheetAt(numSheets);// 获得一个sheetfor (int rowNumOfSheet = 0; rowNumOfSheet &= aSheet.getLastRowNum(); rowNumOfSheet++) {if (null != aSheet.getRow(rowNumOfSheet)) {XSSFRow aRow = aSheet.getRow(rowNumOfSheet); // 获得一个行for (short cellNumOfRow = 0; cellNumOfRow &= aRow.getLastCellNum(); cellNumOfRow++) {if (null != aRow.getCell(cellNumOfRow)) {XSSFCell aCell = aRow.getCell(cellNumOfRow);// 获得列值if (this.convertCell(aCell).length() & 0) {content.append(this.convertCell(aCell));}}content.append(&\n&);}}}}}return content.toString();}private String convertCell(Cell cell) {NumberFormat formater = NumberFormat.getInstance();formater.setGroupingUsed(false);String cellValue = &&;if (cell == null) {return cellV}switch (cell.getCellType()) {case HSSFCell.CELL_TYPE_NUMERIC:cellValue = formater.format(cell.getNumericCellValue());case HSSFCell.CELL_TYPE_STRING:cellValue = cell.getStringCellValue();case HSSFCell.CELL_TYPE_BLANK:cellValue = cell.getStringCellValue();case HSSFCell.CELL_TYPE_BOOLEAN:cellValue = Boolean.valueOf(cell.getBooleanCellValue()).toString();case HSSFCell.CELL_TYPE_ERROR:cellValue = String.valueOf(cell.getErrorCellValue());default:cellValue = &&;}return cellValue.trim();}// 读取pdf文件public String readPDF(String file) throws IOException {String result =FileInputStream is =PDDocument document =try {is = new FileInputStream(file);PDFParser parser = new PDFParser(is);parser.parse();document = parser.getPDDocument();PDFTextStripper stripper = new PDFTextStripper();result = stripper.getText(document);} finally {if (is != null) {is.close();}if (document != null) {document.close();}}}// 读取doc文件public String readWORD(String file) throws Exception {String returnStr = &&;try {WordExtractor wordExtractor = new WordExtractor(new FileInputStream(new File(file)));returnStr = wordExtractor.getText();} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}return returnS}// 读取docx文件public String readWORD2007(String file) throws Exception {
return new XWPFWordExtractor(POIXMLDocument.openPackage(file)).getText();
}// 读取txt文件public String readTXT(String file) throws IOException {String encoding = ReadFileUtils.get_charset(new File(file));if (encoding.equalsIgnoreCase(&GBK&)) {return FileUtils.readFileToString(new File(file), &gbk&);} else {return FileUtils.readFileToString(new File(file), &utf8&);}}private static String get_charset(File file) throws IOException {String charset = &GBK&;byte[] first3Bytes = new byte[3];BufferedInputStream bis =try {boolean checked =bis = new BufferedInputStream(new FileInputStream(file));bis.mark(0);int read = bis.read(first3Bytes, 0, 3);if (read == -1)if (first3Bytes[0] == (byte) 0xFF && first3Bytes[1] == (byte) 0xFE) {charset = &UTF-16LE&;checked =} else if (first3Bytes[0] == (byte) 0xFE&& first3Bytes[1] == (byte) 0xFF) {charset = &UTF-16BE&;checked =} else if (first3Bytes[0] == (byte) 0xEF&& first3Bytes[1] == (byte) 0xBB&& first3Bytes[2] == (byte) 0xBF) {charset = &UTF-8&;checked =}bis.reset();if (!checked) {// int len = 0;int loc = 0;while ((read = bis.read()) != -1) {loc++;if (read &= 0xF0)if (0x80 &= read && read &= 0xBF) // 单独出现BF以下的,也算是GBKif (0xC0 &= read && read &= 0xDF) {read = bis.read();if (0x80 &= read && read &= 0xBF) // 双字节 (0xC0 - 0xDF)// (0x80// - 0xBF),也可能在GB编码内else} else if (0xE0 &= read && read &= 0xEF) {// 也有可能出错,但是几率较小read = bis.read();if (0x80 &= read && read &= 0xBF) {read = bis.read();if (0x80 &= read && read &= 0xBF) {charset = &UTF-8&;} else} else}}// System.out.println( loc + & & + Integer.toHexString( read )// );}} catch (Exception e) {e.printStackTrace();} finally {if (bis != null) {bis.close();}}}}
这个还是一样,只能读取文本,不能读取图片。读pdf时还报错。Exception in thread &main& java.io.IOException: Unknown encoding for 'UniGB-UCS2-H' at org.pdfbox.encoding.EncodingManager.getEncoding(EncodingManager.java:83)
本回答被网友采纳
为你推荐:
其他类似问题
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。}

我要回帖

更多关于 java文本框中的数据写入数据库 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信