C# epplus部件已存在
我想使用epplus excel包更新(添加另一张工作表和添加图表)现有的xlsx文件。然而,我在下面的行中得到了一个错误C# epplus部件已存在,c#,.net,excel,epplus,C#,.net,Excel,Epplus,我想使用epplus excel包更新(添加另一张工作表和添加图表)现有的xlsx文件。然而,我在下面的行中得到了一个错误 var pieChart = worksheet.Drawings.AddChart("Chart1", OfficeOpenXml.Drawing.Chart.eChartType.Pie); 错误:类型为的未处理异常 EPPlus.dll中出现“System.InvalidOperationException” 信息:部分已存在 有人能帮我吗?先谢谢你 using (
var pieChart = worksheet.Drawings.AddChart("Chart1", OfficeOpenXml.Drawing.Chart.eChartType.Pie);
错误:类型为的未处理异常
EPPlus.dll中出现“System.InvalidOperationException”
信息:部分已存在
有人能帮我吗?先谢谢你
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();
}
使用(ExcelPackage pck=new ExcelPackage())
{
使用(FileStream-stream=newfilestream(“Report.xlsx”,FileMode.Open))
{
pck.负荷(流);
Excel工作表=pck.Workbook.Worksheets.Add(“1”);
var数据=新列表
{
新的KeyValuePair(“A组”,44613),
新的KeyValuePair(“B组”,36432),
新的KeyValuePair(“C组”,6324),
新的KeyValuePair(“A组”,6745),
新的KeyValuePair(“B组”,23434),
新的KeyValuePair(“C组”,5123),
新的KeyValuePair(“A组”,34545),
新的KeyValuePair(“B组”,5472),
新的KeyValuePair(“C组”,45637),
新的KeyValuePair(“A组”,37840),
新的KeyValuePair(“B组”,20827),
新的KeyValuePair(“C组”,4548),
};
//填表
var startCell=worksheet.Cells[1,1];
startCell.Offset(0,0).Value=“组名”;
startCell.Offset(0,1).Value=“Value”;
对于(var i=0;i
请将图表1重命名为另一个名称,因为您可能已经在excel文件中代码中的其他地方创建了一个同名图表
是
图表X
还是图表1
?是否已经有图表1
(或图表X,无论您使用什么)是否出现在此工作簿的其他工作表中?是的,应该是Chart1,复制粘贴错误。已编辑。将xlsx重命名为.zip扩展名,然后使用7zip或其他工具打开。是否看到xl\drawings
文件夹?如果是,请查看xml文件并查看是否有“Chart1”已在其中列出。嘿,您确定var pieChart=worksheet…
是出现异常的地方吗?答案与问题无关。问题在于添加与工作簿中已存在的图表同名的图表,而与保存电子表格无关。
using (ExcelPackage packageNew = new ExcelPackage())
{
ExcelWorksheet worksheetNew = packageNew.Workbook.Worksheets.Add("Sheet1");
worksheet.Cells["A1"].Value = "what ever";
.
.
.
Byte[] bin = package.GetAsByteArray();
string file = newFile.FullName; ;
File.WriteAllBytes(file, bin);
//These lines will open it in Excel
ProcessStartInfo pi = new ProcessStartInfo(file);
Process.Start(pi);
}