[]
ExcelにはSPREADでは提供されていない機能(フォームコントロールやマクロなど)もあります。SPREAD上でExcelの全ての機能を動作させることはできませんが、インポートしたExcelファイルの設定を保持したままExcelファイルにエクスポートすることができます。
ExcelOpenFlagsおよびExcelSaveFlagsのDocumentCachingフラグを使用することで、ExcelファイルをSPREADにインポートした際にバッファにフォームコントロールなどの情報を保存しておき、SPREADからExcelファイルにエクスポートする際にこれらの情報も出力します。インポートするExcelのファイル形式とエクスポートするファイル形式はあわせる必要があります。たとえば、Open XML形式ファイル(.xlsx)をインポートた場合は、BIFF8形式ファイル(.xls)ではなくOpen XML形式ファイル(.xlsx)でエクスポートする必要があります。
DocumentCachingフラグの機能では、以下のExcelの機能をサポートします。
フォーム コントロール
ActiveX コントロール
マクロ
Dialogシート
ファイルのプロパティ
ピボットテーブル
VBA
データ接続
VSTO(Visual Studio Tools for Office)
オブジェクト
スマートアート
Dialogシート
次のサンプルコードは、DocumentCachingフラグを使用してExcelファイルをインポートし、SPREAD側で値を変更してからExcelファイルにエクスポートします。
private void button1_Click(object sender, EventArgs e)
{
// フォームコントロールをバッファに保存
fpSpread1.OpenExcel("test1.xlsx", FarPoint.Excel.ExcelOpenFlags.DocumentCaching);
// SPREADの値を変更
fpSpread1.ActiveSheet.Cells[0, 0].Value = "test";
// バッファに保存したフォームコントロールをExcelファイルにエクスポート
fpSpread1.SaveExcel("test2.xlsx", FarPoint.Excel.ExcelSaveFlags.UseOOXMLFormat | FarPoint.Excel.ExcelSaveFlags.DocumentCaching);
}Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
' フォームコントロールをバッファに保存
FpSpread1.OpenExcel("test1.xlsx", FarPoint.Excel.ExcelOpenFlags.DocumentCaching)
' SPREADの値を変更
FpSpread1.ActiveSheet.Cells(0, 0).Value = "test"
' バッファに保存したフォームコントロールをExcelファイルにエクスポート
FpSpread1.SaveExcel("test2.xlsx", FarPoint.Excel.ExcelSaveFlags.UseOOXMLFormat Or FarPoint.Excel.ExcelSaveFlags.DocumentCaching)
End Sub