遇到一個功能開發,直接在頁面上點擊一個按鈕,然後彈出一個excel,進入"預覽列印"模式,用js實現,具體如下:
- //建立一個excel檔案,設定為預覽列印
- function xlPrint(){
- var xlApp;//存放Excel對象
- var xlBook;//存放Excel工件簿檔案
- var xlSheet;//存放Excel使用中工作表
- try{
- xlApp = new ActiveXObject("Excel.Application");
- } catch(e){
- alert("請啟用ActiveX控制項設定!");
- return;
- }
-
- var xlBook = xlApp.Workbooks.Add;
- var xlSheet = xlBook.Worksheets(1);
-
- xlSheet.Cells(1,1).Value = "內容"; //這裡為建立的excel增加資料
-
- xlBook.Worksheets(1).Activate;
- xlApp.Visible = true;
- xlSheet.PrintPreview; // 預覽列印
- xlBook.Close(false); //如果為true,代表關閉的時候需要儲存,false代表不需要關閉
- xlApp.Quit();
- xlApp = null;
- }
大家都知道在使用ActiveXObject時需要修改IE的安全層級,一般我們用的方法就是直接修改:Internet選項->安全->自訂層級->將’對未標記為可安全執行指令碼的ActiveX控制項初始化並執行指令碼’設定為’啟用’。
但是這樣修改IE的安全層級後有一個不好的地方,那就是在使用時IE會提示“當前安全設定會使電腦有風險”,這樣就會給使用者一個不好的印象,那麼有什麼解決方案嗎?
其實很簡單,只要我們將安全層級改為“提示”即可,這樣在使用過程中就會提示“在此頁上的ActioveX控制項和本頁上的其他部分的互動可能不安全。你想允許這種互動嗎?”,我們只要選擇是就行了。這樣給使用者的體驗度就大大提高了,至少讓使用者不會認為你的東西不安全。