2016-10-14 10 views
0

シートをExcelからコピーしたい、特定の名前のシートのコピーを作成したい。Asposeブックのコピー/リネームシート

Aspose.Cells.Workbook workbook = new Aspose.Cells.Workbook(excelFilePath); 
       //Create a Worksheets object with reference to the sheets of the Workbook. 
       WorksheetCollection sheets = workbook.Worksheets; 
       sheets.AddCopy("Cash Bonuses"); 

ここで問題はシート「キャッシュボーナス」のデータをコピーしますが、シート名は「Sheet111」となります。私は "Cash"のような指定された名前でこのシートを作りたいと思います。データが新しいタブにコピーされたら、私は古いタブ "現金ボーナス"を削除し、 "キャッシュ"から "現金ボーナス"として新しいタブの名前を変更します。

答えて

1

ワークシートの内容を別のワークシートにコピーするには、空のワークシートをコレクションに追加して、既存のワークシートのオブジェクト(コピーする必要があるワークシート)そうしないと、宛先ワークシート上のデータが失われます。

すべての要件を満たすために、次のコードを試してください。うまくいけば、このコメントは、そのステートメントの意味を理解するのに役立ちます。

var workbook = new Aspose.Cells.Workbook(excelFilePath); 
var sheets = workbook.Worksheets; 
//Access 1st worksheet from the collection 
//You may also pass the worksheet name to access a particular worksheet 
var sheet0 = sheets[0]; 
//Add a new worksheet to the collection and name it as desired 
var sheet1 = sheets[sheets.Add()]; 
sheet1.Name = "Cash"; 
//Copy the contents of 1st worksheet onto the new worksheet 
sheet1.Copy(sheet0); 
//Delete 1st worksheet 
sheets.RemoveAt(sheet0.Index); 
//Rename newly added worksheet to 'Cash bonuses' 
sheet1.Name = "Cash bonuses"; 
//Save result 
workbook.Save(dir + "output.xlsx"); 

注:私は開発者エバンジェリストとしてAsposeを使用しています。

+0

ありがとうございました...あなたのソリューションを試してみてください...しかし、問題は私のExcelのシートの1つです。私はworkbook.Saveと同じエラーが出てくるのを知ることができません。このエラーが出ます。チェックボックスコントロールとしてシートをExcelからasposeを使ってpdfに変換するとエラーになります。私はAspose 8.5.2.0 version.Iを使用していますが、私が上記の回避策を試していた理由を正確に見つけられませんでした。 – user662285

+0

エクセルのどのセルがこのエラー「インデックス外の例外」を引き起こしているかを見つけるコードを取得できますか? – user662285

+0

私は恐怖ですが、問題の原因を突き止めるためのコードスニペットはありませんが、Aspose.Cells for .NET 16.10.0(AsposeのダウンロードセクションとNuGet経由で入手可能)最近の懸念を試す問題が解決しない場合は、サンプルを見直して例外の原因を調べる必要があります。Aspose.Cellsサポートフォーラムで新しいスレッドを作成し、サンプルをコードスニペットと共有して前記例外を複製してください。 – Prorata

関連する問題