我想知道如何使用Excel宏在sharepoint中导出图表。
我已经编写了一个宏来将我的图形导出为gif图片,这是我的代码:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
ExportGraph
End Sub
Sub ExportGraph()
' Déclaration des variables
Dim Sheets As Variant
Dim NomSheet As String
Dim Graph As Variant
Dim NomGraph As String
Dim Fich As String
Dim i As Byte
' Boucle parcourant les feuilles
For Each Sheets In ActiveWorkbook.Sheets
NomSheet = Sheets.Name
' On parcours les graphiques de la feuille
For Each Graph In Sheets.ChartObjects
i = i + 1
' Selection d'un graphique
Sheets.ChartObjects(i).Activate
' Récupération du nom du graphique
NomGraph = ActiveChart.ChartTitle.Characters.Text
' Chemin où l'on veut exporter les graphiques
Fich = "d:\LocalData\p080931\Desktop\racc\"
' On lance la procédure d'export
ActiveChart.Export Filename:=Fich & NomGraph & ".gif",
FilterName:="GIF"
Next
Next
End Sub
但我想直接在我的SharePoint文档库中导出它。
有什么想法吗?我找不到使用URL的函数。
非常感谢
答案 0 :(得分:1)
我意识到这已经很晚了,但希望它对其他人有用。但是有一个Windows错误,只有在浏览器中打开SharePoint导航到SharePoint库并点击“使用资源管理器打开”时,下面的代码才会起作用。 Connect&中“库”选项卡下的按钮。出口部分。这只需要每台机器一次完成。
您可以使用我在下面列出的示例更改文件类型。 BMP似乎提供了最高质量的图像。
Sub PublishSharePoint()
'Unprotect worksheet
Worksheets("My Worksheet").Unprotect
Call SaveImage("My Worksheet", "B8:N46", "Report Name")
'Protect worksheet
Worksheets("My Worksheet").Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub
这将调用以下例程
Sub SaveImage(sSheet As String, sRange As String, sFile As String)
Worksheets(sSheet).Activate
Set Plage = ThisWorkbook.Worksheets(sSheet).Range(sRange)
Plage.CopyPicture
With ThisWorkbook.Worksheets(sSheet).ChartObjects.Add(Plage.Left, Plage.Top, Plage.Width, Plage.Height)
.Activate
.Chart.Paste
.Chart.ChartArea.Border.LineStyle = xlNone
'.Chart.Export "C:\...\" & nameFile & ".png", "PNG"
'.Chart.Export "C:\...\" & nameFile & ".jpg", "JPG"
.Chart.Export "\\url.sharepoint.com\sites\SiteAssets\SitePages\Page\" & sFile & ".bmp", "BMP"
End With
Worksheets(sSheet).ChartObjects(Worksheets(sSheet).ChartObjects.Count).Delete
Set Plage = Nothing
End Sub
如果您想将网站映射为网络驱动器,这也可以使用:
Dim oNetwork As Object
Set oNetwork = CreateObject("WScript.Network")
oNetwork.MapNetworkDrive "Z:", "http://SharePoint.com/sites/MySite/SiteAssets/SitePages/Report", False
然后删除驱动器
oNetwork.RemoveNetworkDrive "Z:"
答案 1 :(得分:0)