此父级只允许该类型的一个实例,但绘图部分为空
Only one instance of the type is allowed for this parent, but drawing part is null
我有这个代码
ImagePartType ipt = ImagePartType.Jpeg;
DrawingsPart drawingsPart1;
ImagePart imagePart1;
WorksheetDrawing worksheetDrawing1;
if (sheet1.DrawingsPart == null)
{
drawingsPart1 = sheet1.AddNewPart<DrawingsPart>();
imagePart1 = drawingsPart1.AddImagePart(ipt, sheet1.GetIdOfPart(drawingsPart1));
worksheetDrawing1 = new WorksheetDrawing();
}
但在
drawingsPart1 = sheet1.AddNewPart<DrawingsPart>();
它抛出异常“此父级只允许该类型的一个实例”
和
sheet1.DrawingsPart 为空,因此没有其他绘图部分。知道如何解决这个问题吗?这个确切的代码在我的第二个项目中工作,具有相同的 excel 文件!谢谢。
using (SpreadsheetDocument document = SpreadsheetDocument.Open(outputDocumentStream, true))
{
wbPart = document.WorkbookPart;
document.Close();
}
sheet1 = GetWorksheetPart(wbPart, "Sheet1")
和
public WorksheetPart GetWorksheetPart(WorkbookPart workbookPart, string sheetName)
{
string relId = workbookPart.Workbook.Descendants<Sheet>().First(s => sheetName.Equals(s.Name)).Id;
return (WorksheetPart)workbookPart.GetPartById(relId);
}
我不能写更多的代码,因为它不是开源项目。基本上我通过输入 sheet 名称来工作sheet 和工作sheet 部分,然后我必须在某个单元格中插入图片。
WorkbookPart wbPart;
using (SpreadsheetDocument document = SpreadsheetDocument.Open(outputDocumentStream, true))
{
wbPart = document.WorkbookPart;
InsertImage(GetWorksheetPart(wbPart, sheetNameTopLeft), (int)topLeftRow - 1, (int)topLeftColumn - 1,
(int)bottomRightRow - 1, (int)bottomRightColumn - 1, imageStream); //, 250, 200);
document.Close();
}
这解决了它。 InsertImage 方法在括号之外。我不知道为什么,但这修复了我的代码。
我有这个代码
ImagePartType ipt = ImagePartType.Jpeg;
DrawingsPart drawingsPart1;
ImagePart imagePart1;
WorksheetDrawing worksheetDrawing1;
if (sheet1.DrawingsPart == null)
{
drawingsPart1 = sheet1.AddNewPart<DrawingsPart>();
imagePart1 = drawingsPart1.AddImagePart(ipt, sheet1.GetIdOfPart(drawingsPart1));
worksheetDrawing1 = new WorksheetDrawing();
}
但在
drawingsPart1 = sheet1.AddNewPart<DrawingsPart>();
它抛出异常“此父级只允许该类型的一个实例”
和
sheet1.DrawingsPart 为空,因此没有其他绘图部分。知道如何解决这个问题吗?这个确切的代码在我的第二个项目中工作,具有相同的 excel 文件!谢谢。
using (SpreadsheetDocument document = SpreadsheetDocument.Open(outputDocumentStream, true))
{
wbPart = document.WorkbookPart;
document.Close();
}
sheet1 = GetWorksheetPart(wbPart, "Sheet1")
和
public WorksheetPart GetWorksheetPart(WorkbookPart workbookPart, string sheetName)
{
string relId = workbookPart.Workbook.Descendants<Sheet>().First(s => sheetName.Equals(s.Name)).Id;
return (WorksheetPart)workbookPart.GetPartById(relId);
}
我不能写更多的代码,因为它不是开源项目。基本上我通过输入 sheet 名称来工作sheet 和工作sheet 部分,然后我必须在某个单元格中插入图片。
WorkbookPart wbPart;
using (SpreadsheetDocument document = SpreadsheetDocument.Open(outputDocumentStream, true))
{
wbPart = document.WorkbookPart;
InsertImage(GetWorksheetPart(wbPart, sheetNameTopLeft), (int)topLeftRow - 1, (int)topLeftColumn - 1,
(int)bottomRightRow - 1, (int)bottomRightColumn - 1, imageStream); //, 250, 200);
document.Close();
}
这解决了它。 InsertImage 方法在括号之外。我不知道为什么,但这修复了我的代码。