【问题标题】:How to create excel sheet data directly from the .net application?如何直接从 .net 应用程序创建 excel 工作表数据?
【发布时间】:2009-10-26 05:44:32
【问题描述】:

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

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

我还想在其中一列中使用下拉列表。我们如何做到这一点。

请尽快回复我......

【问题讨论】:

    标签: c# asp.net excel


    【解决方案1】:

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

    试试这个link

    【讨论】:

      【解决方案2】:

      尝试扩展 Sheet Gear 第三方组件

      http://www.spreadsheetgear.com/

      【讨论】:

        【解决方案3】:

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

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

        【讨论】:

          【解决方案4】:

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

          【讨论】:

            【解决方案5】:

            我正在使用 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 互操作 - 它就像一个魅力!非常推荐。

            马克

            【讨论】:

            • 当心 ExcelPackage 似乎会随着您向电子表格中写入越来越多的行而呈指数级变慢。有没有人阅读知道为什么?
            【解决方案6】:

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

            【讨论】:

              【解决方案7】:
              猜你喜欢
              • 2016-05-26
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2018-04-25
              相关资源
              最近更新 更多