ServerDocument.Save 方法 (2007 系統)
更新:2007 年 11 月
使用 ServerDocument 類別,儲存對文件所做的任何變更。
命名空間: Microsoft.VisualStudio.Tools.Applications
組件: Microsoft.VisualStudio.Tools.Applications.ServerDocument.v9.0 (在 Microsoft.VisualStudio.Tools.Applications.ServerDocument.v9.0.dll 中)
語法
Public Sub Save
Dim instance As ServerDocument
instance.Save()
public void Save()
例外狀況
例外狀況 | 條件 |
---|---|
DocumentClosedException | ServerDocument 已經關閉。 |
MissingHostItemIdException | CachedDataHostItem 的 Id 屬性為 nullNull 參照 (即 Visual Basic 中的 Nothing) 或空白。 |
MissingDataIdException | CachedDataItem 的 Id 屬性為 nullNull 參照 (即 Visual Basic 中的 Nothing) 或空白。 |
MissingTypeException | CachedDataItem 的 DataType 屬性為 nullNull 參照 (即 Visual Basic 中的 Nothing) 或空白。 |
備註
Save 方法會儲存您對快取資料或文件中的部署資訊清單 URL 所做的任何變更。如果您使用磁碟上的文件建立了 ServerDocument 物件,這個方法會將這些變更儲存至磁碟。如果您使用記憶體中的文件建立了 ServerDocument 物件,這個方法會將這些變更儲存至記憶體緩衝區。
範例
下列程式碼範例會為指定的 Excel 活頁簿建立新的 ServerDocument,使用 SerializeDataInstance 方法修改工作表中快取的字串值,然後使用 Save 方法儲存變更。
這個範例要求在您的程式碼檔案頂端要有 Microsoft.VisualStudio.Tools.Applications.ServerDocument.v9.0.dll 和 Microsoft.VisualStudio.Tools.Applications.Runtime.v9.0.dll 組件的參考,以及 Microsoft.VisualStudio.Tools.Applications 和 Microsoft.VisualStudio.Tools.Applications.Runtime 命名空間的 Imports (適用於 Visual Basic) 或 using (適用於 C#) 陳述式。這個範例也會假設指定之活頁簿所含的自訂,具有 ExcelWorkbook1 命名空間中的 Sheet1 類別,以及具有名為 CachedString 的 Sheet1 類別中的快取字串。
Private Sub ModifyCachedString(ByVal documentPath As String)
Dim runtimeVersion As Integer = 0
Dim serverDocument1 As ServerDocument = Nothing
Try
runtimeVersion = ServerDocument.GetCustomizationVersion(documentPath)
If runtimeVersion <> 3 Then
MessageBox.Show("This document does not have a Visual Studio Tools for Office " & _
"customization, or it has a customization that was created with a version of " & _
"the runtime that is incompatible with this version of the ServerDocument class.")
Return
End If
If ServerDocument.IsCacheEnabled(documentPath) Then
serverDocument1 = New ServerDocument(documentPath)
Dim hostItem1 As CachedDataHostItem = _
serverDocument1.CachedData.HostItems("ExcelWorkbook1.Sheet1")
Dim dataItem1 As CachedDataItem = hostItem1.CachedData("CachedString")
If dataItem1 IsNot Nothing AndAlso _
Type.GetType(dataItem1.DataType).Equals(GetType(String)) Then
dataItem1.SerializeDataInstance("This is the new cached string value.")
serverDocument1.Save()
End If
Else
MessageBox.Show("The specified document does not have cached data.")
End If
Catch ex As System.IO.FileNotFoundException
System.Windows.Forms.MessageBox.Show("The specified document does not exist.")
Catch ex As UnknownCustomizationFileException
System.Windows.Forms.MessageBox.Show("The specified document has a file " & _
"extension that is not supported by Visual Studio Tools for Office.")
Finally
If Not (serverDocument1 Is Nothing) Then
serverDocument1.Close()
End If
End Try
End Sub
private void ModifyCachedString(string documentPath)
{
int runtimeVersion = 0;
ServerDocument serverDocument1 = null;
try
{
runtimeVersion = ServerDocument.GetCustomizationVersion(documentPath);
if (runtimeVersion != 3)
{
MessageBox.Show("This document does not have a Visual Studio Tools for " +
"Office customization, or it has a customization that was created with " +
"a version of the runtime that is incompatible with this version of the " +
"ServerDocument class.");
return;
}
if (ServerDocument.IsCacheEnabled(documentPath))
{
serverDocument1 = new ServerDocument(documentPath);
CachedDataHostItem hostItem1 =
serverDocument1.CachedData.HostItems["ExcelWorkbook1.Sheet1"];
CachedDataItem dataItem1 = hostItem1.CachedData["CachedString"];
if (dataItem1 != null &&
Type.GetType(dataItem1.DataType) == typeof(string))
{
dataItem1.SerializeDataInstance("This is the new cached string value.");
serverDocument1.Save();
}
}
else
{
MessageBox.Show("The specified document does not have cached data.");
}
}
catch (System.IO.FileNotFoundException)
{
System.Windows.Forms.MessageBox.Show("The specified document does not exist.");
}
catch (UnknownCustomizationFileException)
{
System.Windows.Forms.MessageBox.Show("The specified document has a file " +
"extension that is not supported by Visual Studio Tools for Office.");
}
finally
{
if (serverDocument1 != null)
serverDocument1.Close();
}
}
使用權限
- 完全信任立即呼叫者。這個成員無法供部分信任的程式碼使用。如需詳細資訊,請參閱從部分受信任程式碼使用程式庫。