将代码从Microsoft Interop更改为EPPlus

本文关键字:EPPlus Interop 代码 Microsoft | 更新日期: 2023-09-27 18:18:38

我已经创建了一组代码,使用Microsoft Interop从我的Image文件夹导出图像到Excel,现在我想将我的代码从Microsoft Interop更改为EPPlus。

有人能帮我一下吗?

这是我的代码:

Microsoft.Office.Interop.Excel._Application app = new Microsoft.Office.Interop.Excel.Application();
    Microsoft.Office.Interop.Excel._Workbook workbook = app.Workbooks.Add(Type.Missing);
    string[] filesindirectory = Directory.GetFiles(Server.MapPath("~/Image"));
    int count = 0;
    foreach (string img in filesindirectory)
    {
        count++;
        Excel.Worksheet worksheet = (Excel.Worksheet)workbook.Worksheets.Add();
        System.Web.UI.WebControls.Image TEST_IMAGE = new System.Web.UI.WebControls.Image();
        worksheet.Name = "Title- " + count;
        TEST_IMAGE.ImageUrl = "Image/" + Path.GetFileName(img);
        TEST_IMAGE.ImageUrl = this.GetAbsoluteUrl(TEST_IMAGE.ImageUrl);
        worksheet.Shapes.AddPicture(TEST_IMAGE.ImageUrl, Microsoft.Office.Core.MsoTriState.msoFalse, Microsoft.Office.Core.MsoTriState.msoCTrue, 50, 50, 300, 300);
    }
    workbook.Worksheets["Sheet1"].Delete();
    workbook.Worksheets["Sheet2"].Delete();
    workbook.Worksheets["Sheet3"].Delete();
    workbook.SaveAs(@"C:'Users'user'Desktop'Test'" + datetime.ToString("dd-MM-yyyy_hh-mm-ss") + ".xlsx", Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlExclusive, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
    app.Quit();

谢谢。

将代码从Microsoft Interop更改为EPPlus

要通过epplus将图像读取到excel中,您可以使用以下示例(它还将向您展示如何从头开始设置新工作簿):

在EPPlus上设置行's高度时的奇怪行为

要删除工作表,可以这样做:

using (var pack = new ExcelPackage(existingFile))
{
    var ws = pack.Workbook.Worksheets.Add("sheet1");
    pack.Workbook.Worksheets.Delete(ws);
    ...
}

但是,如果你只是试图清除由excel创建的默认工作表,当你创建一个新的文件,你不需要用EPPlus这样做-默认情况下,没有工作表时,创建一个新的package(即工作簿)。这取决于程序员是否添加表,如果没有至少一个表,它将抛出错误。