打开受损文件,然后单击选择另存为。
选择将原文件存储到其他位置并用网页的格式保存。确保选中完整的电子表格。
用excell打开保存的文件,并以Excel格式再次保存。
如果运气足够好,文件损坏就会消失
实现代码如下:public class Word2Html { public static void main(String argv[]) { try { //word 路径 html输出路径 convert2Html("D:/doctohtml/1.doc","D:/doctohtml/1.html") } catch (Exception e) { e.printStackTrace() } } public static void writeFile(String content, String path) { FileOutputStream fos = null BufferedWriter bw = null try { File file = new File(path) fos = new FileOutputStream(file) bw = new BufferedWriter(new OutputStreamWriter(fos,"utf-8")) bw.write(content) } catch (FileNotFoundException fnfe) { fnfe.printStackTrace() } catch (IOException ioe) { ioe.printStackTrace() } finally { try { if (bw != null) bw.close() if (fos != null) fos.close() } catch (IOException ie) { } } } public static void convert2Html(String fileName, String outPutFile) throws TransformerException, IOException, ParserConfigurationException { HWPFDocument wordDocument = new HWPFDocument(new FileInputStream(fileName))//WordToHtmlUtils.loadDoc(new FileInputStream(inputFile)) WordToHtmlConverter wordToHtmlConverter = new WordToHtmlConverter( DocumentBuilderFactory.newInstance().newDocumentBuilder() .newDocument()) wordToHtmlConverter.setPicturesManager( new PicturesManager() { public String savePicture( byte[] content, PictureType pictureType, String suggestedName, float widthInches, float heightInches ) { //html 中 图片标签中 显示的图片路路径 <img src="d:/test/0.jpg"/>return "d:/doctohtml/"+suggestedName} } ) wordToHtmlConverter.processDocument(wordDocument) //save pictures List pics=wordDocument.getPicturesTable().getAllPictures() if(pics!=null){ for(int i=0i<pics.size()i++){ Picture pic = (Picture)pics.get(i) System.out.println() try { //word中图片的存储路径 pic.writeImageContent(new FileOutputStream("D:/doctohtml/" + pic.suggestFullFileName())) } catch (FileNotFoundException e) { e.printStackTrace() } } } Document htmlDocument = wordToHtmlConverter.getDocument() ByteArrayOutputStream out = new ByteArrayOutputStream() DOMSource domSource = new DOMSource(htmlDocument) StreamResult streamResult = new StreamResult(out) TransformerFactory tf = TransformerFactory.newInstance() Transformer serializer = tf.newTransformer() serializer.setOutputProperty(OutputKeys.ENCODING, "utf-8") serializer.setOutputProperty(OutputKeys.INDENT, "yes") serializer.setOutputProperty(OutputKeys.METHOD, "html") serializer.transform(domSource, streamResult) out.close() writeFile(new String(out.toByteArray()), outPutFile) }}