以编程方式从模板创建工作簿

时间:2014-12-12 19:42:18

标签: c# excel-2007 compatibility excel-2003 excel-interop

我有一个在" Office 2003"中创建的excel模板,尽管如此,我需要以编程方式从这个现有模板创建一个新工作簿。如果有任何可能导致错误的事情,例如锁定的单元格,隐藏的公式,隐藏的表格等,请提及。

可能有助于充分了解的一些事情

  1. 我已从Office 2003升级 - >但是,Office 2010的文件格式为Excel 2007。

  2. 有超过303行和26列,每一行都包含自己独特的公式(只在一张纸上),总共可能超过700行,100列(在添加任何其他工作表之前),每个都包含自己相对独特的公式。##

  3. 某些单元格和工作表已被锁定,以防止用户导致的错误或用户篡改单元格公式。

  4. 这个模板将被几个人使用,他们都拥有自己的计算机。我无法保证文件将位于每台用户计算机上的相同位置。

  5. 软件信息:

    Visual Studio 2013 Office 2010 Office 2003

2 个答案:

答案 0 :(得分:0)

您需要查看EPPlus http://epplus.codeplex.com

EPPlus是一个.net库,使用Open Office Xml格式(xlsx)读取和写入Excel 2007/2010文件。

答案 1 :(得分:0)

找到解决方案!

在vs2013中,他们提供excel 2007插件, 在预定义的互操作性中,有一种方法可以从模板创建一个文件,那个让我失望的部分是参数的一部分,它显示了:

“Type.missing”。 这个代码结构的一个例子如下:

//the #region is simply so that if copied and pasted, the code will make sense, and there will be a label encapsulating the specific code lines. *Note it does not affect the results
#region add workbook from template file
Excel.Application f;
//the following line is written assuming that you would have already made sure that excel was in the Running Objects Table (ROT)
f=(Excel.Application)Marshal.GetActiveObject("Excel.Application");
f.visible=true;
f.Workbooks.Add("C:\\...");
\if there are any questions please comment, I will do my best to explain my own answer
#endregion