如何将Excel图表导出到sharepoint

时间:2016-04-27 12:45:39

标签: excel vba excel-vba sharepoint sharepoint-2010

我想知道如何使用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的函数。

非常感谢

2 个答案:

答案 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)

您可以将网络驱动器映射到SharePoint站点/子站点,然后将代码导出到那里。打开Windows资源管理器,右键单击"计算机"在左侧单击"映射网络驱动器..."。出现“映射网络驱动器”对话框后,选择您要使用的驱动器号,然后在"文件夹"下拉粘贴到SharePoint网站的URL。

enter image description here

enter image description here

然后在您的代码中,指向此共享驱动器的路径以及文档库所在的位置。

Fich = "S:\DocumentLibrary\"

希望有所帮助!