web-dev-qa-db-ja.com

Excelスプレッドシートでシート名をC#から変更するにはどうすればよいですか?

データベース内のデータから多数のExcelファイルを作成しているC#アプリケーションがあります。この部分は正常に機能しています。しかし、私のユーザーは、データベースのフィールドを反映するようにシートタブを変更できるかどうか尋ねました。これは単純に聞こえますが、名前をリセットしようとすると、読み取り専用で設定できないと表示されます。私は以下を試しましたが、うまくいきませんでした:

xlApp.Sheets[0].Range["A1"].Value = "NewTabName";

また試してみました:

xlApp.Name = "NewTabName";

私はグーグル検索をしました、そして私にとってもうまくいかなかった他のいくつかのアプローチを見ました。そして、いくつかの応答は、それが読み取り専用であり、実行できなかったことを示しました。

これは単純なはずのようです。どうすればいいですか。

13
Steve Goedker

実際のワークシートにアクセスする必要があります。次のようなものを試してください:

  Microsoft.Office.Interop.Excel.Worksheet worksheet = (Worksheet)xlApp.Worksheets["Sheet1"];
  worksheet.Name = “NewTabName”;
25
mikemurf22