2009-10-26 23 views
2

我想使用C#语言从asp.net应用程序创建Excel表。
如何直接从.net应用程序创建Excel表格数据?

请回复我如何创建它,如果有源代码。我不知道如何创建它。

另外我想列在其中的一个下拉列表。我们如何做到这一点。

请回复我的迫切....

问候, 吉里什

回答

1

我使用ExcelPackage库,使用从Office 2007的OpenXML标准文件格式,使得它可以很容易地创建您的自己的Excel表格从你的C#或VB.NET应用程序很少的努力。

警告字:它已经到了我的注意(我没有给予足够的重视这一事实),其在CodePlex上的ExcelPackage下一个相当严格的GPL许可,这使得它几乎无法使用的实际许可除了爱好者之外的任何人。如果你使用它,你将不得不透露你的源代码。

它可能是这个样子:

using OfficeOpenXml; // namespace for the ExcelPackage assembly 

FileInfo newFile = new FileInfo(@"C:\mynewfile.xlsx"); 
using (ExcelPackage xlPackage = new ExcelPackage(newFile)) 
{ 
    ExcelWorksheet worksheet = xlPackage.Workbook.Worksheets.Add("Tinned Goods"); 

    // write some titles into column 1 
    worksheet.Cell(1, 1).Value = "Product"; 

    worksheet.Cell(4, 1).Value = "Peas"; 
    worksheet.Cell(5, 1).Value = "Total"; 

    // write some values into column 2 
    worksheet.Cell(1, 2).Value = "Tins Sold"; 

    ExcelCell cell = worksheet.Cell(2, 2); 
    cell.Value = "15"; // tins of Beans sold 
    string calcStartAddress = cell.CellAddress; // we want this for the formula 
    worksheet.Cell(3, 2).Value = "32"; // tins Carrots sold 

    worksheet.Cell(5, 2).Formula = string.Format("SUM({0}:{1})", 
    calcStartAddress, calcEndAddress); 
} 

完全免费的,可提供源,不需要办公室的机器上安装运行(如Web服务器),没有慢而凌乱的COM互操作 - 它就像一个魅力!非常强烈推荐。

Marc

+1

当心ExcelPackage似乎得到成倍慢你写越来越多的行到电子表格。有谁阅读知道为什么? – Triynko 2010-05-27 21:11:32

1

您可以使用Excel COM对象在ASP.NET中创建Excel工作表。

试试这个link

1

您的问题的两种基本方法是使用ADO.NET或使用system.xml库。 如果您使用XML,您将创建基于XML的Office 2007格式文件(以及读取/写入),而使用ADO.NET则需要现有文件afaik。

我建议使用上面建议的库来处理它作为XML文件,并将其作为基于XLSX/XLSM的文件分发。 即使用户在Office 2003上,他们也可以使用兼容性来打开这些文件(从Microsoft下载基本文件)。

1

另一种选择(使用第三方组件)是SmartXLS

相关问题