【发布时间】:2009-10-26 05:44:32
【问题描述】:
我想使用 C# 语言从 asp.net 应用程序创建 excel 工作表。
请回复我如何创建它以及是否有来源。我不知道如何创建它。
我还想在其中一列中使用下拉列表。我们如何做到这一点。
请尽快回复我......
【问题讨论】:
我想使用 C# 语言从 asp.net 应用程序创建 excel 工作表。
请回复我如何创建它以及是否有来源。我不知道如何创建它。
我还想在其中一列中使用下拉列表。我们如何做到这一点。
请尽快回复我......
【问题讨论】:
您可以使用 Excel COM 对象在 ASP.NET 中创建 Excel 工作表。
试试这个link。
【讨论】:
尝试扩展 Sheet Gear 第三方组件
【讨论】:
解决您的问题的两种基本方法是使用 ADO.NET 或使用 system.xml 库。 如果您使用 XML,您将创建一个基于 XML 的 Office 2007 格式文件(以及读/写),而使用 ADO.NET,您将需要一个现有文件 afaik。
我建议使用上面建议的库,将其作为 XML 文件使用,并将其作为基于 XLSX/XLSM 的文件分发。 即使用户使用的是 Office 2003,他们也可以使用兼容性回打开此类文件(从 Microsoft 基本下载)。
【讨论】:
另一个选项(使用第三方组件)是SmartXLS。
【讨论】:
我正在使用 ExcelPackage 库,它使用 Office 2007 中的 OpenXML 标准文件格式,并且可以轻松地从 C# 或 VB.NET 应用程序中轻松创建自己的 Excel 工作表。
警告词:我注意到(我没有足够注意这一事实)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(例如您的 Web 服务器),没有缓慢而混乱的 COM 互操作 - 它就像一个魅力!非常推荐。
马克
【讨论】:
另一个选项(没有第三方工具)是将 Excel 工作簿视为 ADO.NET 数据源。 参考:http://support.microsoft.com/kb/316934
【讨论】: