VS2010 + Office Interop 2007 を使用して、5 ~ 6 ページの Excel スプレッドシートからいくつかの特定のスプレッドシート名を取得しようとしています。そこから、必要ないくつかのスプレッドシートを、さらに処理するためにタブ区切りのテキスト ファイルに保存するだけです。したがって、取得した 3 つのスプレッドシート名については、それぞれに独自のタブ区切りのテキスト ファイルがあります。
相互運用機能を使用してタブ区切りでファイルを保存できますが、それは指定されたページ名が何であるかを知っていることを前提としています。各ページ名は厳密な命名規則に従っていないとのことですが、希望の名前を探すときに「RCP」、「rcp」、「受信者」などの複数の名前を考慮することができます。
私の質問は、すべてのスプレッドシートのページ名をある種のインデックスで取得して、それらを反復処理して必要な 3 つの名前を見つけようとすることはできますか? これは、「RCP」、「rcp」、「受信者」ページを大量の試行/キャッチで取得しようとするよりもはるかに優れています。
次の方法でExcelスプレッドシートのページ数を取得できるため、近いです。
Excel.Application excelApp = new Excel.Application(); // Creates a new Excel Application
excelApp.Visible = true; // Makes Excel visible to the user.
// The following code opens an existing workbook
string workbookPath = path;
Excel.Workbook excelWorkbook = null;
try
{
excelWorkbook = excelApp.Workbooks.Open(workbookPath, 0,
false, 5, "", "", false, Excel.XlPlatform.xlWindows, "", true,
false, 0, true, false, false);
}
catch
{
//Create a new workbook if the existing workbook failed to open.
excelWorkbook = excelApp.Workbooks.Add();
}
// The following gets the Worksheets collection
Excel.Sheets excelSheets = excelWorkbook.Worksheets;
Console.WriteLine(excelSheets.Count.ToString()); //dat count
お時間をいただきありがとうございます。