我有出口的HTML表格到Excel中的一個功能,類似這樣的問題,設置活動單元格:HTML Table to Excel Javascript如何導出HTML表時到Excel
我的問題是,默認情況下,Excel的啓動時選擇A1單元格這是不希望的。我想要先不選擇任何東西,或者用另一個預定義的單元格(比方說A3)。
有沒有辦法做到這一點?我可以在生成的html代碼中添加一些標記來說「選擇A3」嗎?
我有出口的HTML表格到Excel中的一個功能,類似這樣的問題,設置活動單元格:HTML Table to Excel Javascript如何導出HTML表時到Excel
我的問題是,默認情況下,Excel的啓動時選擇A1單元格這是不希望的。我想要先不選擇任何東西,或者用另一個預定義的單元格(比方說A3)。
有沒有辦法做到這一點?我可以在生成的html代碼中添加一些標記來說「選擇A3」嗎?
經過幾個小時的搜索,我找到了答案。
HTML的</head>
部之前添加以下代碼:
<!--[if gte mso 9]>
<xml>
<x:ExcelWorkbook>
<x:ExcelWorksheets>
<x:ExcelWorksheet>
<x:Name>Worksheet</x:Name>
<x:WorksheetOptions>
<x:ActivePane>3</x:ActivePane>
<x:Panes>
<x:Pane>
<x:Number>3</x:Number>
<x:ActiveRow>3</x:ActiveRow>
<x:ActiveCol>2</x:ActiveCol>
</x:Pane>
</x:Panes>
</x:WorksheetOptions>
</x:ExcelWorksheet>
</x:ExcelWorksheets>
</x:ExcelWorkbook>
</xml><![endif]-->
這將選擇B3細胞(ActiveCol:2 = B,ActiveRow:3)當用戶打開所產生的Excel文件。
由於某些原因,窗格編號爲必須爲爲3。不知道爲什麼。所有我能找到的是這樣的:http://dev.bowdenweb.com/css/v/ms-office/ofhtml9/Excel/xleleNumber.htm其中提到
當數據來自PivotList組件,窗格元素的數目子元素 是必需的,包含整數3
如果此Javascript正在爲您創建一個excel工作簿,那麼默認情況下無法將宏添加到工作簿。但是,你可以做到以下,但我想指出,這是不好的做法,我不會推薦它。另外值得注意的是,每個工作表必須始終選擇至少一個單元格,因此您不能選擇'無'
您可以將事件處理程序添加到個人Excel工作簿(如果您需要創建此工作簿,請按照this guide),而如果你的HTML表格輸出有一個標準的文件名,那麼這將選擇任何單元格你喜歡,當你在Excel中打開它們:
個人,粘貼的ThisWorkbook
:
Private Sub Workbook_Open()
Set ExcelEvents = New CExcelEvents
End Sub
然後創建一個新的類模塊(右鍵單擊ThisWorkbook
,>插入...>類Mo獨樂,並粘貼此代碼:
Option Explicit
Private WithEvents XLApp As Application
Private Sub Class_Initialize()
Set XLApp = Application
End Sub
Private Sub XLApp_WorkbookOpen(ByVal Wb As Workbook)
If InStr(1, Wb.Name, "HTMLTableOut", vbTextCompare) > 0 Then Wb.ActiveSheet.Range("A3").Select
End Sub
替換HTMLTableOut與你期望的文件名存在的文字,這是獨家通過該方法導出表,並與您要選擇的細胞替代A3。
...但這是一個解決這個問題的方法。
很抱歉,如果我沒不清楚,但解決方案必須在生成的html輸出中,而不是通過在Excel中手動執行。我可以以某種方式將您提供的模塊代碼插入到用於excel的html標記中以提取出來嗎? – pkExec
不,我不這麼認爲。據我所知,沒有簡單的方法來改變諸如選擇之類的東西,而實際上並沒有在某些時候打開excel。您可以將宏代碼推送到Excel文檔中,但是選擇只會在文件第一次打開時纔會改變,並且只有在用戶啓用文檔的活動內容後纔會更改,並且他們需要爲所有文檔執行此操作而不是僅僅一個個人文件。 –