word匯出手機端亂碼或者打不開解決辦法
word匯出手機端亂碼或者打不開解決辦法
前言:
本次匯出還是使用之前freemarker模板匯出word,這次出現手機端打不開是因為手機上的wps版本比較低,因為親測ios和安卓系統都能開啟,但是wps10版本的開啟是原始碼或者亂碼,所以找到了兩種解決方案可以在低版本wps和microsoft office的手機上開啟。
因為是省廳內網,手機上的應用是統一管理的,就當與內網裡面有個應用市場,不是你說更新就更新,而且要提交一大串的申請。
先看之前的兩種方式匯出word:
1.freemarker模板匯出word迴圈圖片表格詳細教程
這個可以電腦端 ios和安卓高版本的wps開啟。
2.freemarker模板匯出帶表格word詳細教程
這個可以在電腦端和ios開啟,安卓手機不管什麼wps版本開啟都亂碼。
解決思路:
其實上述的方法最終並不是純正的word,只是xml格式的word文件,我們們需要吧生成後的文件轉換成真正的word格式,才能在老版本的wpsh和microsoft office等應用開啟。解決辦法還是有好幾種的。
解決辦法:
一:利用jacob動態連結庫進行轉存,此方法只適用於winodws,不適用Linux。
1.下載jacob-1.18-x64.dll
2.1.8之前放置在jdk/bin目錄下,重新啟動專案即可(jdk1.8放置在jdk/jre/bin ),有多種辦法,我用的簡單的一種。
3.上程式碼demo:
public static String createNewWord(String path) {
/**這個path是原來的生成的地址*/
ActiveXComponent _app = new ActiveXComponent("Word.Application");
_app.setProperty("Visible", Variant.VT_FALSE);
Dispatch documents = _app.getProperty("Documents").toDispatch();
// 開啟FreeMarker生成的Word文件
Dispatch doc = Dispatch.call(documents, "Open",path, Variant.VT_FALSE, Variant.VT_TRUE).toDispatch();
// 另存為新的Word文件
String newPath ="D:/daye.doc";
Dispatch.call(doc, "SaveAs", newPath, Variant.VT_FALSE, Variant.VT_TRUE);
Dispatch.call(doc, "Close", Variant.VT_FALSE);
_app.invoke("Quit", new Variant[] {});
ComThread.Release();
return newPath;
}
二:利用Spire.Doc元件讀取與寫入Word
1.下載jar包:
2.pom引入:`
<repositories>
<repository>
<id>com.e-iceblue</id>
<name>e-iceblue</name>
<url>http://repo.e-iceblue.com/nexus/content/groups/public/</url>
</repository>
</repositories>`
<dependency>
<groupId>e-iceblue</groupId>
<artifactId>spire.doc</artifactId>
<version>3.11.0</version>
</dependency>
3.實戰編碼:也就是把之前的word轉存下
##savePath是之前的地址 savePathResult是轉完存的地址
Document document = new Document(savePath);
document.saveToFile(savePathResult, FileFormat.Docx);
三.利用XWPFDocument 或者HWPFDocument 轉換生成word
1.pom檔案
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>4.0.0</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-scratchpad</artifactId>
<version>3.16</version>
</dependency>
2.實戰編碼:
try{
OPCPackage open = OPCPackage.open("D:\\home\\ketech\\zj_zby\\zj_zby\\log\\appfile\\20201127101756\\202011275666受害人現勘筆錄.doc");
XWPFDocument xwpfDocument =new XWPFDocument(open);
FileOutputStream out = new FileOutputStream("D:\\hello.doc");
xwpfDocument.write(out);
System.out.println("eee");
// Document document = new Document("D:\\2020.doc");
// document.saveToFile("BBB.docx", FileFormat.Docx_2013);
//
// System.out.println("eee");
// FileInputStream in = new FileInputStream("D:\\2020.doc");
// XWPFDocument document = new XWPFDocument(in);
// HWPFDocument doc = new HWPFDocument(in);
// CharacterProperties props = new CharacterProperties();
// FileOutputStream out = new FileOutputStream("D:\\hello.doc");
// doc.write(out);
// out.flush();
// out.close();
}
catch (Throwable t)
{
t.printStackTrace();
}
總結
其實上述三種方法都需要在進行操作一次原文件,最好的辦法當然是更新手機應用版本,實在不行再這幾個方法,而且這幾種方法每個裡面還有其他操作文件的方法,就看你怎麼結合實際應用。
後記
內網WPS版本統一升級了。。。。。就當自己鍛鍊升級好了,差不多花了四五天時間。
相關文章
- Word文件加密打不開怎麼辦 Word解除密碼的三種解決辦法加密密碼
- 【Salesforce問題解決】Dataloader匯出的檔案亂碼或者問號的解決辦法Salesforce
- Github打不開解決辦法(最新有效)Github
- win10為什麼電腦word打不開_win10 word打不開的解決方法Win10
- flashfxp 亂碼,2種辦法解決flashfxp 亂碼問題
- ubuntu中文顯示亂碼解決辦法Ubuntu
- php json提交亂碼的解決辦法PHPJSON
- w10word為什麼打不開如何解決_win10word文件突然打不開了怎麼辦Win10
- win10打不開word怎麼辦_win10開啟word無響應的解決方法Win10
- win10打不開word文件怎麼辦 win10word打不開怎麼修復Win10
- LoadRunner中文出現亂碼的解決辦法
- MYSQL資料庫匯入資料時出現亂碼的解決辦法MySql資料庫
- Mac本軟體安裝之後打不開的解決辦法Mac
- Excel開啟csv檔案出現亂碼的解決辦法Excel
- Excel表格打不開的解決方法 電子表格打不開怎麼辦?Excel
- 管理工具匯入CSV檔案,中文資料亂碼的解決辦法。
- Zabbix圖表顯示中文亂碼解決辦法
- 2022年steam商店打不開怎麼辦 steam客戶端商店頁面打不開錯誤程式碼118黑屏怎麼解決客戶端
- win10所有word文件都打不開如何解決_win10電腦所有word文件無法開啟解決教程Win10
- Redis中文顯示為Unicode編碼 亂碼的解決辦法RedisUnicode
- win10開始選單無法開啟怎麼辦_win10打不開開始選單解決辦法Win10
- linux下解壓部分zip檔案存在亂碼解決辦法Linux
- win10系統電腦開始選單欄打不開的解決辦法Win10
- gist 打不開,解決方式
- 常見php與mysql中文亂碼問題解決辦法PHPMySql
- win10控制皮膚不執行怎麼辦_win10控制皮膚打不開解決辦法Win10
- win10cad2008正在驗證許可證卡著打不開解決辦法Win10
- 用CMD執行時Java,出現亂碼的解決辦法Java
- win10夜燈打不開怎麼辦_win10夜燈模式打不開解決方法Win10模式
- win10 windows功能打不開怎麼辦_win10 windows功能打不開的解決方法Win10Windows
- VNC打不開Qt Creator解決VNCQT
- reCAPTCHA打不開的解決方法APT
- 解決GitHub打不開的方法Github
- 聯想小新開不了機解決辦法
- IE 不支援 Promise 解決辦法 (或者 promise 未定義)的解決方法Promise
- RedHat虛擬機器打不開磁碟問題如何解決?RedHat虛擬機器打不開磁碟的解決方法Redhat虛擬機
- php onethink驗證碼不顯示的解決辦法PHP
- iOS12 beta2支付寶閃退、卡死打不開的解決辦法iOS