更改代码从微软互操作要EPPlus
问题描述:
我创建了一套代码中使用微软互操作从我的映像文件夹的影像导出到Excel,现在我想改变我的代码从微软互操作,以EPPlus。更改代码从微软互操作要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();
感谢。
答
要通过epplus您可以使用此作为一个例子读取图像到Excel(它也将告诉你如何建立一个从无到有的新工作簿):
Weird behavior when setting a row's height on EPPlus
要删除工作表就可以是这样做的:
using (var pack = new ExcelPackage(existingFile))
{
var ws = pack.Workbook.Worksheets.Add("sheet1");
pack.Workbook.Worksheets.Delete(ws);
...
}
但如果你只是想,当你创建你不需要做,与EPPlus一个新的文件清理用Excel创建的默认表 - 默认情况下没有表创建时新package
(即工作簿)。它是由程序员添加床单和如果没有至少一个会抛出异常。