您的位置:首页 > 运维架构

使用OpenXml 2.0向Excel文档加入自定义Ribbon

2012-08-22 10:40 351 查看
Ribbon.xml

<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">
<ribbon>
<tabs>
<tab id="CustomTab" label="My Tab">
<group id="MyGroup" label="My Group" >
<button id="Button1" label="My Large Button" size="large"/>
<button id="Button2" label="My Normal Button" size="normal"/>
</group >
</tab>
</tabs>
</ribbon>
</customUI>


Program:

Imports log4net
Imports System.Windows.Forms
Imports System.IO
Imports DocumentFormat.OpenXml.Packaging
Imports DocumentFormat.OpenXml.Office.CustomUI

Module Module1
Private MyLog As ILog = log4net.LogManager.GetLogger(GetType(Module1))

Sub Main()
Dim OFD As New OpenFileDialog
Dim TargetFile As String
Dim SourceFile As String
Dim RibbonXml As String
Dim RibbonExtend As RibbonExtensibilityPart

OFD.Multiselect = False
OFD.Title = "打开目标Excel文件"
OFD.InitialDirectory = System.Environment _
.GetFolderPath(System.Environment.SpecialFolder.Desktop)
OFD.Filter = "Excel文件|*.xlsx;*.xlsm"
OFD.ShowDialog()
TargetFile = OFD.FileName
MyLog.Info("Target File : " + TargetFile)
OFD.Title = "打开RibbonXml文件"
OFD.Filter = "Ribbon Xml文件|*.xml"
OFD.ShowDialog()
SourceFile = OFD.FileName
MyLog.Info("Source File : " + SourceFile)
RibbonXml = File.OpenText(SourceFile).ReadToEnd()
MyLog.Info("Ribbon Xml : " + RibbonXml)
Using SSD As SpreadsheetDocument = SpreadsheetDocument _
.Open(TargetFile, True)
RibbonExtend = SSD.GetPartsOfType(Of RibbonExtensibilityPart)() _
.FirstOrDefault()
If RibbonExtend Is Nothing Then
RibbonExtend = SSD.AddRibbonExtensibilityPart()
Else
RibbonExtend.CustomUI = New CustomUI(RibbonXml)
RibbonExtend.CustomUI.Save()
End If
End Using
Console.ReadKey()

End Sub

End Module


欢迎访问《许阳的红泥屋
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: