C# 用asp.net实现Excel报表

C# 用asp.net实现Excel报表,c#,asp.net,reporting,C#,Asp.net,Reporting,我有Excel(.xlsx)文件(模板),我需要用SQL server数据库中Excel某些部分的数据进行填充。可以吗?如果不可能,那么实现它的最佳方法是什么?我也在考虑SQL server Reporting services。请让我知道 谢谢你的建议。这可能会给你一些建议: 谷歌搜索这可能会给你一些提示: 谷歌搜索有很多方法可以做到这一点,这实际上取决于您更喜欢做什么,以及您希望如何将解决方案集成到最终解决方案中 这里是我使用的一些方法,给你一些可以做什么的想法 报告服务 该控件很容

我有Excel(.xlsx)文件(模板),我需要用SQL server数据库中Excel某些部分的数据进行填充。可以吗?如果不可能,那么实现它的最佳方法是什么?我也在考虑SQL server Reporting services。请让我知道


谢谢你的建议。

这可能会给你一些建议:


谷歌搜索

这可能会给你一些提示:


谷歌搜索

有很多方法可以做到这一点,这实际上取决于您更喜欢做什么,以及您希望如何将解决方案集成到最终解决方案中

这里是我使用的一些方法,给你一些可以做什么的想法

报告服务

该控件很容易集成到现有的ASP.NET解决方案中,安全性基于Windows身份验证,因此安全性在SQL Server/Active Directory中进行管理。通常在我的小应用程序中,我使用模拟来禁用安全性,并设置隐藏的报告参数来控制报告。报告是使用GUI在BIDS/VS中创建的,感觉非常像在Access中构建报告。该控件还支持以多种不同格式(PDF、XLS、DOC等)导出

不使用Excel编辑XLS文件

我在过去几年中一直在使用它,它非常棒,可以像模板一样轻松地管理/操作XLS文档。下面是一个例子

示例

使用OLE直接XLS/XLSX

直接使用XLS和XLSX文件的另一个解决方案是使用随一起安装的OleDbConnection

示例

使用SSI填充Excel模板

这一切都是在SQL Server中完成的,输出可以通过邮件发送或放入文件夹中。如果我需要使用特殊格式/公式等自动发送每个已定义的Excel文件,我将使用此方法。。。这是使用SSIS包中的BIDS/VS设置的。您将创建一个具有。此方法有一些限制,请使用链接了解详细信息


同样,正确的解决方案将基于您的需求。。。还要考虑维护,因为报告的最终使用者似乎总是需要对报告进行更改/更新

有很多方法可以做到这一点,这实际上取决于您更喜欢做什么,以及您希望如何将解决方案集成到最终解决方案中

这里是我使用的一些方法,给你一些可以做什么的想法

报告服务

该控件很容易集成到现有的ASP.NET解决方案中,安全性基于Windows身份验证,因此安全性在SQL Server/Active Directory中进行管理。通常在我的小应用程序中,我使用模拟来禁用安全性,并设置隐藏的报告参数来控制报告。报告是使用GUI在BIDS/VS中创建的,感觉非常像在Access中构建报告。该控件还支持以多种不同格式(PDF、XLS、DOC等)导出

不使用Excel编辑XLS文件

我在过去几年中一直在使用它,它非常棒,可以像模板一样轻松地管理/操作XLS文档。下面是一个例子

示例

使用OLE直接XLS/XLSX

直接使用XLS和XLSX文件的另一个解决方案是使用随一起安装的OleDbConnection

示例

使用SSI填充Excel模板

这一切都是在SQL Server中完成的,输出可以通过邮件发送或放入文件夹中。如果我需要使用特殊格式/公式等自动发送每个已定义的Excel文件,我将使用此方法。。。这是使用SSIS包中的BIDS/VS设置的。您将创建一个具有。此方法有一些限制,请使用链接了解详细信息


同样,正确的解决方案将基于您的需求。。。还要考虑维护,因为报告的最终使用者似乎总是需要对报告进行更改/更新

我使用了电子表格工具。它是付费的,但却是一个非常好的工具。

我使用了电子表格工具。它是付费的,但却是一个非常好的工具。

如何将网页中的值替换为Excel?这篇文章并没有讨论这个问题。我在回答中添加了一些链接。我如何将网页中的值替换为Excel?这篇文章没有谈论它。我在答案中添加了一些链接
// Open Template
FileStream fs = new FileStream(Server.MapPath(@"\template\Template_EventBudget.xls"), FileMode.Open, FileAccess.Read);

// Load the template into a NPOI workbook
HSSFWorkbook templateWorkbook = new HSSFWorkbook(fs, true);

// Load the sheet you are going to use as a template into NPOI
HSSFSheet sheet = templateWorkbook.GetSheet("Event Budget");

// Insert data into template
sheet.GetRow(1).GetCell(1).SetCellValue(EventName.Value);  // Inserting a string value into Excel
sheet.GetRow(1).GetCell(5).SetCellValue(DateTime.Parse(EventDate.Value));  // Inserting a date value into Excel

sheet.GetRow(5).GetCell(2).SetCellValue(Double.Parse(Roomandhallfees.Value));  
 using (
            OleDbConnection con =
                new OleDbConnection(
                    @"Provider=Microsoft.ACE.OLEDB.12.0; Extended Properties=Excel 12.0;Data Source=" + SourceFile +
                    @";Extended Properties=Excel 12.0;"))
        {
            con.Open();
            string sql = String.Format("SELECT * FROM [{0}$]", sheetName);
            OleDbDataAdapter da = new OleDbDataAdapter(sql, con);

            da.Fill(dt);
        }