使用 OpenXML 将背景图像添加到 Excel

问题描述 投票:0回答:2

我正在使用 Open XML 创建 Excel。我想向 Excel 添加背景图像。 不要告诉我将图像添加到 Excel 并与 OpenXML Productivity Tool 进行比较。 请让我知道执行此操作的提取方法?

c# excel openxml
2个回答
0
投票

我已经深入研究使用 OpenXML 将背景图像应用到 Excel,并且我正在共享代码。

class Program
{
    static void Main(string[] args)
    {
        //pathe of the Excel file to add background image
        string document = @"Book1.xlsx";
        // Open the document for editing.  
        using (SpreadsheetDocument spreadsheetDocument = SpreadsheetDocument.Open(document, true))
        {
            //  Get existing sheets from workbook.  
            Sheets sheets = spreadsheetDocument.WorkbookPart.Workbook.GetFirstChild<Sheets>();
            // Loop through all sheets and add image as background
            foreach (var sheet in sheets.Elements<Sheet>())
            {
                WorksheetPart worksheetPart = (WorksheetPart)spreadsheetDocument.WorkbookPart.GetPartById(sheet.Id);
                CreateWorksheetPart(worksheetPart);
            }
        }
    }

    public static void CreateWorksheetPart(WorksheetPart part)
    {
        ImagePart imagePart1 = part.ImageParts.FirstOrDefault();
        if (imagePart1 == null)
            imagePart1 = part.AddNewPart<ImagePart>("image/jpeg", "rId1");
        string str = part.GetIdOfPart(imagePart1);
        GenerateImagePart1Content(imagePart1);
        GeneratePartContent(part, str);

    }
    private static void GenerateImagePart1Content(ImagePart imagePart1)
    {
        using (var stream = new FileStream("WatermarkDoc.png", FileMode.Open))
        {
            imagePart1.FeedData(stream);
        }
    }

    private static void GeneratePartContent(WorksheetPart part, string idPart)
    {
        Worksheet worksheet1 = part.Worksheet;
        Picture picture1 = new Picture() { Id = idPart };
        worksheet1.Append(picture1);
    }
}

使用以下工具查找 openXML 中的更多类。 https://www.microsoft.com/en-us/download/details.aspx?id=30425?


0
投票

我遇到了同样的问题,我发现这篇文章,代码确实有效,但是,它会永远重复,有没有办法只显示一次图像? 谢谢

© www.soinside.com 2019 - 2024. All rights reserved.