Excel for UWP
ワークブックの計算モードの設定
タスク別ヘルプ > ワークブックの計算モードの設定

C1XLBook.CalculationMode プロパティは、ワークブック内のすべての数式の計算モードを指定します。CalculationMode 列挙は、Manual(手作業で計算を実行する)、Auto(自動的に計算を実行する)、AutoNoTable (テーブル以外は計算を実行する)の3つのオプションを提供します。

XAML ビュー

  1. ソリューションエクスプローラで[参照]を右クリックし、リストから[参照の追加]を選択します。
    1. C1.UWP.Excel.dll を参照します。
    2. [OK]をクリックして、アセンブリ参照をアプリケーションに追加します。
  2. XAML ビューで、<Grid> </Grid> タグの間にカーソルを置きます。
  3. ページに2つの標準 Button コントロールと1つの標準 TextBox コントロールを追加します。
    1. 最初のボタンのマークアップを次のように編集します。
      XAML マークアップ
      コードのコピー
      <Button x:Name="HelloButton" Content="Click Hello" />
      
    2. 2つ目のボタンのマークアップを次のように編集します。
      XAML マークアップ
      コードのコピー
      <Button x:Name="SaveButton" Content="保存..." />
      
    3. TextBox コントロールのマークアップを次のように編集します。 
      XAML マークアップ
      コードのコピー
      <TextBox               
         Name="_tbContent"
         Text="空白"
         IsReadOnly="True"
         AcceptsReturn="True"
         FontFamily="Courier New"
         Background="White" Margin="465,10,242,722" />
      
  4. HelloButton用のHelloButton_Click というイベントを作成して、MainPage.xaml のコードビューに切り替えます。これにより、コードに HelloButton_Click イベントも追加されます。
  5. デザインビューに切り替え、SaveButton をダブルクリックして、SaveButton_Click イベントをコードに追加します。これで、コードビューが開きます。

コードビュー

計算モードを設定するには、次の手順に従います。

  1. ページの先頭に using 文を追加します。
    C#
    コードのコピー
    using C1.Xaml.Excel; 
    
  2. 次のようなコードを MainPage クラスに追加します。
    C#
    コードのコピー
    public sealed partial class MainPage : Page
        {
            C1XLBook _book;
        } 
    
  3. InitializeComponent() メソッドに次のコードを追加して、C1XLBook を作成します。
    C#
    コードのコピー
    _book = new C1XLBook(); 
    
  4. RefreshView() メソッドを追加します。後でこのメソッドをコード内で呼び出します。
    C#
    コードのコピー
    void RefreshView()
            {
            } 
    
  5. 計算を実行するために簡単な数式を追加します。

    C# コードの書き方

    C#
    コードのコピー
    private void HelloButton_Click(object sender, RoutedEventArgs e)
            {
                // 手順1:新しいワークブックを作成します
                _book = new C1XLBook();
                // 手順2:デフォルトのシートを取得して、名前を付けます
                XLSheet sheet = _book.Sheets[0];
                // 手順3:簡単な数式を追加します
                sheet[7, 0].Value = "Formula: 5!";
                sheet[7, 1].Value = 122;
                sheet[7, 1].Formula = "1*2*3*4*5";
                _book.CalculationMode = CalculationMode.Auto;
            
                // 手順4:ユーザーがファイルを保存できるようにします
                _tbContent.Text = "'Hello World' ブックが作成され、保存可能になりました。";
                RefreshView();
            } 
    
  6. ワークブックを保存します。

    C# コードの書き方

    C#
    コードのコピー
    async void SaveButton_Click(object sender, RoutedEventArgs e)
            {
                Debug.Assert(_book != null);
                var picker = new Windows.Storage.Pickers.FileSavePicker();
                picker.SuggestedStartLocation = Windows.Storage.Pickers.
                            PickerLocationId.DocumentsLibrary;
                picker.FileTypeChoices.Add("Open XML Excel ファイル", new List<string>() { ".xlsx" });
                picker.FileTypeChoices.Add("BIFF Excel ファイル", new List<string>() { ".xls" });
                picker.SuggestedFileName ="新しいブック";
                var file = await picker.PickSaveFileAsync();
                if (file != null)
                {
                    try
                    {
                        // 手順1:ファイルを保存します
                        var fileFormat = Path.GetExtension(file.Path).Equals(".xls") ? 
                                            FileFormat.Biff8 : FileFormat.OpenXml;
                        await _book.SaveAsync(file, fileFormat);
                        // 手順2:ユーザーフィードバック
                        _tbContent.Text = string.Format("ファイルを保存しました : {0}.", file.Path);
                        RefreshView();
                    }
                    catch (Exception x)
                    {
                        _tbContent.Text = string.Format("例外 : {0}", x.Message);
                    }
                }
            }                                                                                                
    

    プロジェクトを実行し、Excel ファイルを保存してから開きます。CalculationModeAuto に設定したため、セル(7,1)の値が 122 ではなく 1201*2*3*4*5 の結果)になっていることに注目してください。

関連トピック