【问题标题】:How to repeat watermark in excel created如何在创建的excel中重复水印
【发布时间】:2018-01-29 09:15:00
【问题描述】:

在我的 webform 项目中,我在 C# 中生成带有 Aspose 的 excel 文件,并使用以下代码为其添加水印:

 Aspose.Cells.Worksheet sheet = workbook.Worksheets[0];
            Aspose.Cells.Drawing.MsoPresetTextEffect effect = Aspose.Cells.Drawing.MsoPresetTextEffect.TextEffect2;
            Aspose.Cells.Drawing.Shape wordart = sheet.Shapes.AddTextEffect(effect,"WATERMARKTEXT", "Arial Black", 47, false, false, 1, 1, 1, 1, 50, 300);
            Aspose.Cells.Drawing.MsoFillFormat wordArtFormat = wordart.FillFormat;
            wordArtFormat.ForeColor = System.Drawing.Color.Red;
            wordArtFormat.Transparency = 0.8;
            Aspose.Cells.Drawing.MsoLineFormat lineFormat = wordart.LineFormat;
            lineFormat.IsVisible = false;
            return workbook;

但我想在每张纸上水平和垂直地重复这个水印。我该怎么做?

【问题讨论】:

    标签: c# excel aspose


    【解决方案1】:

    请参阅以下示例代码,使用 Aspose.Cells API 完成您的任务,供您参考: 例如 示例代码:

    Workbook workbook = new Workbook("e:\\test2\\Book1.xlsx");
                //Add watermark to the first worksheet.
                Aspose.Cells.Worksheet sheet = workbook.Worksheets[0];
                Aspose.Cells.Drawing.MsoPresetTextEffect effect = Aspose.Cells.Drawing.MsoPresetTextEffect.TextEffect2;
                Aspose.Cells.Drawing.Shape wordart = sheet.Shapes.AddTextEffect(effect, "WATERMARKTEXT", "Arial Black", 47, false, false, 1, 1, 1, 1, 50, 300);
                Aspose.Cells.Drawing.MsoFillFormat wordArtFormat = wordart.FillFormat;
                wordArtFormat.ForeColor = System.Drawing.Color.Red;
                wordArtFormat.Transparency = 0.8;
                Aspose.Cells.Drawing.MsoLineFormat lineFormat = wordart.LineFormat;
                lineFormat.IsVisible = false;
    
    
                //Now add watermark to the second worksheet as it is.
                Aspose.Cells.Worksheet worksheet1 = workbook.Worksheets[1];
                worksheet1.Shapes.AddCopy(wordart, wordart.UpperLeftRow, wordart.Top, wordart.UpperLeftColumn, wordart.Left);
    
    
                //Now add watermark to the third worksheet vertically.
                Aspose.Cells.Worksheet worksheet2 = workbook.Worksheets[2];
                worksheet2.Shapes.AddCopy(wordart, wordart.UpperLeftRow, wordart.Top, wordart.UpperLeftColumn, wordart.Left);
                worksheet2.Shapes[0].RotationAngle = 90;
    
                workbook.Save("e:\\test2\\out.xlsx");
    

    注意:我在 Aspose 担任支持开发人员/宣传员。

    【讨论】:

    • 我想在一张纸上重复水印,我不能用水印来做,然后为这张纸设置背景,结果就是我想要的。
    • 是的,设置背景图片(您可以使用所需的水印文本创建图片并保存为图像格式(例如PNG))可以满足您的需求,因为您需要多次放置水印/文本一个工作表。
    【解决方案2】:

    我用这种方法设置背景而不是水印:

      private static Aspose.Cells.Workbook AddExcelWaterMark(Aspose.Cells.Workbook workbook)
        {
            try
            {
                string path = HttpContext.Current.Server.MapPath("~/images/ExcelBackGround.png");
                byte[] bgBuffer = File.ReadAllBytes(path);
    
                foreach (Aspose.Cells.Worksheet sheet in workbook.Worksheets)
                    sheet.SetBackground(bgBuffer);
    
                return workbook;
            }
            catch
            {
                return workbook;
            }
        }
    

    【讨论】:

      猜你喜欢
      • 2020-03-26
      • 1970-01-01
      • 2013-04-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多