我有出口的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文档中,但是选择只会在文件第一次打开时才会改变,并且只有在用户启用文档的活动内容后才会更改,并且他们需要为所有文档执行此操作而不是仅仅一个个人文件。 –