excel在c#中的处理

我正在开发一份工作申请。 每个作业生成一个excel文件。 我将有50个并行工作。 所以50个excel文件将并行生成。

我正在使用C#3.5和Excel 2003.问题是我无法实例化更多的Excel对象。 我得到COMException。 那么我是否需要一次只创build一个excel处理? 你有这个解决scheme吗?

请帮助我。

编辑:

excel genration不需要用户交互。 它是一个预定的工作。

我正在生成Excel(xls)。 我需要在Excel中进行格式设置和着色,所以我不能使用csv。 现在我已经同步了代码,所以一次只有一个作业处理Excel。 但是花费太多时间,因为一次只有一个excel处理。

任何types的Excel池逻辑将有所帮助? 请指导我。

要做到这一点,你需要启动50个Excel实例,这是行不通的。

你有3个选项:

  • 使用Open XML SDK 2.0 for Microsoft Office 。 这允许你写一个excel文件,就好像它是一个xml文件。 不需要启动Excel。
  • 使用SharePoint Excel Services。 这允许你做服务器端Excel处理。 不需要启动Excel。 与此问题是包含Excel Services的SharePoint版本是昂贵的。
  • 按照您的build议一次处理一个文件。

哦,我曾经有这样的问题B4。

我的解决scheme是我使用HTML Excel。 老实说,它有点愚蠢的解决scheme,但它工作得很好,很容易实现。

1创buildhtml模板有点像这样

<html> <body> name - <div>$<name>$</div> </body> </html> 

2以stringforms阅读你的模板

 System.IO.StreamReader stream = new System.IO.StreamReader(""); string template = stream.ReadToEnd(); template = template.Replace("$<name>$", "John"); 

3然后将您的string保存为.xls

**创build模板表很容易。

1创buildExcel模板,通常在Excel中做

2在单元格中,您想要replace您在$$名称中的值types$$ *请注意,上面我使用$ <'value'> $。 但如果我们这样做,我build议你cahnge $$名$$因为<和> excel会为我们做HtmlEncode

3你可以创build很多工作表

4'另存为'.mht

5然后将file.mht更改为.xls和string.Replace(“$$ name $$”,“John”);

50个excel文件的生成是否需要用户交互?
如果没有,您可以创build一个生成文件的夜间作业。

如果它是纯文本格式(或CSV),则不需要Excel。
另外,您可以使用一个excel实例来一个接一个地生成所有的文件。