使用Addin以编程方式从不同模板创建Excel表格

时间:2015-08-13 14:11:35

标签: c# excel office-interop

我正在开发一个能够从我们的数据库中获取数据的Excel Addin。我不想直接转储数据,而是希望以一种很好的格式呈现数据。我有我们当地的VBA专家开发相同的模板,因为可以有多个表格,所有这些都可以有不同的格式。

正在添加我遇到的工作表。

string TemplateFileLocation  = Path.GetFullPath(fileName);
if(File.Exists(fileName)) 
{
    Worksheet newWorkSheet  = (WorkSheet)Globals.ThisAddin.Aplication.Worksheets.Add(Missing.Value,Missing.Value,1,TemplateFileLocation);
}

代码在到达此位置时崩溃。 返回的错误代码是:0x800A03EC

我已经确认模板文件的路径是正确的。

这些模板中的每一个都只有一个工作表。

1 个答案:

答案 0 :(得分:0)

您可以使用EPPlus

using System.IO;
using System.Reflection;
using OfficeOpenXml;

//Create a stream of .xlsx file contained within my project using reflection
Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("EPPlusTest.templates.VendorTemplate.xlsx");            

//EPPlusTest = Namespace/Project
//templates = folder
//VendorTemplate.xlsx = file

//ExcelPackage has a constructor that only requires a stream.
  ExcelPackage pck = new OfficeOpenXml.ExcelPackage(stream);