epplus excelパッケージを使用して、既存のxlsxファイルを更新(別のシートを追加してグラフを追加)したいです。しかし、私はラインepplus part already exists
var pieChart = worksheet.Drawings.AddChart("Chart1", OfficeOpenXml.Drawing.Chart.eChartType.Pie);
エラー、次のエラーでしまった:タイプ 「のSystem.InvalidOperationException」の未処理の例外はEPPlus.dll追加 情報で発生しました:一部はすでに
ができ存在します誰も私を助ける?前もって感謝します。
using (ExcelPackage pck = new ExcelPackage())
{
using (FileStream stream = new FileStream("Report.xlsx", FileMode.Open))
{
pck.Load(stream);
ExcelWorksheet worksheet = pck.Workbook.Worksheets.Add("1");
var data = new List<KeyValuePair<string, int>>
{
new KeyValuePair<string, int>("Group A", 44613),
new KeyValuePair<string, int>("Group B", 36432),
new KeyValuePair<string, int>("Group C", 6324),
new KeyValuePair<string, int>("Group A", 6745),
new KeyValuePair<string, int>("Group B", 23434),
new KeyValuePair<string, int>("Group C", 5123),
new KeyValuePair<string, int>("Group A", 34545),
new KeyValuePair<string, int>("Group B", 5472),
new KeyValuePair<string, int>("Group C", 45637),
new KeyValuePair<string, int>("Group A", 37840),
new KeyValuePair<string, int>("Group B", 20827),
new KeyValuePair<string, int>("Group C", 4548),
};
//Fill the table
var startCell = worksheet.Cells[1, 1];
startCell.Offset(0, 0).Value = "Group Name";
startCell.Offset(0, 1).Value = "Value";
for (var i = 0; i < data.Count(); i++)
{
startCell.Offset(i + 1, 0).Value = data[i].Key;
startCell.Offset(i + 1, 1).Value = data[i].Value;
}
//Add the chart to the sheet
var pieChart = worksheet.Drawings.AddChart("Chart1", OfficeOpenXml.Drawing.Chart.eChartType.Pie);
pieChart.SetPosition(data.Count + 1, 0, 0, 0);
pieChart.Title.Text = "Test Chart";
pieChart.Title.Font.Bold = true;
pieChart.Title.Font.Size = 12;
pck.Save();
}
「Chart X」または「Chart1」ですか?このワークブックの他のシートには、既に「Chart1」(または使用しているChart X)がありますか? – Spidey
はい、それはChart1、コピー貼り間違いです。既に編集されています。 – Svartalfar
xlsxの名前を.zip拡張子に変更し、7zipまたは他のツールで開きます。あなたは 'xl \ drawings'フォルダを見ますか?もしそうなら、xmlファイルを見て、すでにそこにリストされている "chart1"があるかどうかを確かめてください。 – Ernie