2016-04-27 24 views
0

我想知道如何使用Excel宏在SharePoint中導出圖。如何將Excel圖導出到共享點

我已經編寫一個宏來我的圖形導出爲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

這是可能的,你可以映射網絡驅動器到您的SharePoint網站/子網站,然後讓你的代碼的出口在那裏。打開Windows資源管理器,右鍵單擊左側的「計算機」,然後單擊「映射網絡驅動器...」。出現「映射網絡驅動器」對話框後,選擇您要使用的驅動器盤符,然後在「文件夾」下拉列表中將URL粘貼到SharePoint網站。

enter image description here

enter image description here

然後在你的代碼,將您的路徑到此共享驅動器和文檔庫的位置。

Fich = "S:\DocumentLibrary\" 

希望幫助!

+0

坦克爲您的答案。但它不起作用,我從Excel沒有錯誤,但文件不導出。它完全適用於拖放,但不適用於宏(我驗證路徑20次,它是正確的)。我不認爲我的電腦是管理員,這可能是由於這個原因。 – First

+0

好吧,現在它的工作原理,我剛剛複製了錯誤的路徑,我有2之間的選擇,我選擇了錯誤的路徑。謝謝你的幫助 – First

0

我意識到這已經很晚了,但希望對別人有用。但是,如果您在瀏覽器中打開SharePoint導航到SharePoint庫並點擊「連接&導出」部分的「庫」選項卡中的「使用資源管理器打開」按鈕,下面的代碼只會起作用。這隻需要每臺機器一次完成。

您可以使用下面包含的示例更改文件類型。 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:"