如何直接从.net应用程序创建Excel工作表数据?

时间:2009-10-26 05:44:32

标签: c# asp.net excel

我想使用C#语言从asp.net应用程序创建excel表。

请回复我如何创建它以及是否有源。我不知道如何创建它。

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

请回复我的紧急情况....

此致 Girish

7 个答案:

答案 0 :(得分:1)

我正在使用ExcelPackage库,该库使用Office 2007中的OpenXML标准文件格式,并且很容易为您的C#或VB.NET应用程序创建自己的Excel工作表而不费力。

WORD OF WARNING :我注意到了(我对此事实没有给予足够的重视)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);
}

完全免费,可用源代码,不需要在运行它的机器上安装Office(例如你的网络服务器),没有缓慢而混乱的COM互操作 - 它就像一个魅力!非常强烈推荐。

马克

答案 1 :(得分:1)

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

试试这个link

答案 2 :(得分:1)

尝试传播Sheet Gear第三方组件

http://www.spreadsheetgear.com/

答案 3 :(得分:1)

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

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

答案 4 :(得分:1)

另一个选项(使用第三方组件)是SmartXLS

答案 5 :(得分:0)

另一个选项(没有第三方工具)将Excel工作簿视为ADO.NET数据源。 参考:http://support.microsoft.com/kb/316934

答案 6 :(得分:0)