Excelエクスポート時に非表示の列や行を出力しない方法はありますか?

文書番号 : 33505     文書種別 : 使用方法     登録日 : 2012/11/14     最終更新日 : 2014/09/10
文書を印刷する
対象製品
SPREAD for Windows Forms 7.0J
詳細
列のVisibleプロパティをFalseにした場合、表示上の列は非表示になりますがSPREADの実データ(データモデル)が影響を受けることはありません。一方、Excelファイルにエクスポート時にはデータモデルのデータをもとにエクスポートするため、画面の表示と一致しない場合があります。このような場合には、エクスポート用の一時的なSPREADを生成してそのシートの特定列を削除することで実現できます。

◎サンプルコード(VB)
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  ' 現在のSPREADのアクティブシートをXML文字列に変換します。
  Dim XMLString As String = FarPoint.Win.Serializer.GetObjectXml(CType(FpSpread1.ActiveSheet, FarPoint.Win.ISerializeSupport), "Sheet1")

  ' XML文字列からSheetViewオブジェクトを生成します。
  Dim sv As New FarPoint.Win.Spread.SheetView
  FarPoint.Win.Serializer.SetObjectXml(CType(sv, FarPoint.Win.ISerializeSupport), XMLString, "Sheet1")

  ' Excelエクスポート用の一時的なSPREADを生成し、SheetViewオブジェクトを追加します。
  Dim temp As New FarPoint.Win.Spread.FpSpread
  temp.Sheets.Add(sv)

  ' 列を削除します。
  temp.Sheets(0).RemoveColumns(2, 1)

  ' Excelファイルへエクスポートします。
  temp.SaveExcel("..¥..¥spread.xls")

  ' 一時的なSPREADを削除します。
  temp.Dispose()
  temp = Nothing
End Sub

◎サンプルコード(C#)
private void button1_Click(object sender, EventArgs e)
{
  // 現在のSPREADのアクティブシートをXML文字列に変換します。
  String XMLString = FarPoint.Win.Serializer.GetObjectXml((FarPoint.Win.ISerializeSupport)fpSpread1.ActiveSheet, "Sheet1");

  // XML文字列からSheetViewオブジェクトを生成します。
  FarPoint.Win.Spread.SheetView sv = new FarPoint.Win.Spread.SheetView();
  FarPoint.Win.Serializer.SetObjectXml((FarPoint.Win.ISerializeSupport)sv, XMLString, "Sheet1");

  // Excelエクスポート用の一時的なSPREADを生成し、SheetViewオブジェクトを追加します。
  FarPoint.Win.Spread.FpSpread temp = new FarPoint.Win.Spread.FpSpread();
  temp.Sheets.Add(sv);

  // 列を削除します。
  temp.Sheets[0].RemoveColumns(2, 1);

  // Excelファイルへエクスポートします。
  temp.SaveExcel("..¥¥..¥¥spread.xls");

  // 一時的なSPREADを削除します。
  temp.Dispose();
  temp = null;
}
関連情報
キーワード
「Excel」