asp.net中如何把sql中的数据查找出来,并且倒入到Excel文件中

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了asp.net中如何把sql中的数据查找出来,并且倒入到Excel文件中相关的知识,希望对你有一定的参考价值。

在Bin中导入ExcelLibrary.dll
引入using ExcelLibrary.SpreadSheet;
代码如下:
protected void btnExcel_Click(object sender, EventArgs e)

FileUpload upload = new FileUpload();
this.gvStatistics.AllowPaging = false;//先取消分页,以便能将所有数据导出。
this.gvStatistics.DataBind();//再重新绑定一次数据

int rows = this.gvStatistics.Rows.Count;//行数
int columns = this.gvStatistics.Columns.Count;//列数
int pages = this.gvStatistics.PageCount;//页数

Workbook book = new Workbook();
Worksheet sheet = new Worksheet("sheet1");

string value = "";
for (int r = 0; r < rows; r++)

for (int c = 0; c < columns; c++)

value = this.gvStatistics.Rows[r].Cells[c].Text;
sheet.Cells[r, c] = new Cell(value);



book.Worksheets.Add(sheet);
book.Save(@"D:\名字.xls");
this.gvStatistics.AllowPaging = true;//导出后分页。
this.gvStatistics.DataBind();//再重新绑定一次数据


这个是从GridView中导出到Exce中的,希望对你有用
参考技术A 查出来绑定GridView1 然后导出

private void ExportDataGrid(string FileType, string FileName)//生成excel

Response.Charset = "GB2312";
Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(FileName, Encoding.UTF8));
Response.ContentType = FileType;
this.EnableViewState = false;
StringWriter tw = new StringWriter();
htmlTextWriter hw = new HtmlTextWriter(tw);
GridView1.RenderControl(hw);
Response.Write(tw.ToString());
Response.End();

public override void VerifyRenderingInServerForm(Control control)



然后直接调用 ExportDataGrid("application/ms-excel","报表.xls");
参考技术B Response.AddHeader(追问

什么意思????

如何根据 VB ASP.net 和 SQL 中的多个数据绑定下拉列表最好地过滤 gridview

【中文标题】如何根据 VB ASP.net 和 SQL 中的多个数据绑定下拉列表最好地过滤 gridview【英文标题】:How to best filter gridview based on multiple databound dropdownlists in VB ASP.net & SQL 【发布时间】:2016-01-13 06:10:11 【问题描述】:

我有一个网格视图,它当前从表中提取所有记录。此外,我有 4 个下拉列表,它们数据绑定到 4 列中的每一列的所有可能值,并且下拉列表列表被设置为用于数据库查询的 gridview 中的控件。

在每个 downdownlist 中,我在顶部附加了一个空白值,这是默认值,并且无论何时选择此值,数据库都会使用它来返回所有结果(当为 null 时,该列上没有过滤器)。

这是当前的数据库查询。

SELECT 
    Week_Ending, Employee, Project, Status_Of_Employment 
FROM 
    Times  
WHERE 
    (@Project IS NULL OR Project LIKE @Project)
    AND (@Employee IS NULL OR Employee LIKE @Employee)
    AND (@Status_Of_Employment IS NULL OR Status_Of_Employment LIKE @Status_Of_Employment)
    AND (@WeekEnding IS NULL OR Week_Ending = CONVERT(datetime, @WeekEnding, 103))

此查询允许用户按任何一个或 4 列的组合进行过滤

除了在初始页面加载时出现的问题外,此解决方案运行良好.

我希望能够做的是防止 gridview 在初始页面加载时显示任何结果,直到应用过滤器之一。我知道,我可以为每个下拉列表使用一些无效数据,例如“请选择一个过滤器”,而不是默认的空白值,但理想情况下,我希望用户不必在每个下拉列表中选择空白选项来选择无过滤器,因为大多数查询通常只是一个或两个过滤器。

是否有一种简单的方法可以在初始页面加载之前停止查询,或者是否有使用我忽略的下拉列表进行过滤的最佳实践?

谢谢

【问题讨论】:

你可能在Page_Load事件中加载GridView,删除它。 它没有在 Page_Load 事件中加载。但是作为一个配置了数据源的gridview,它有一个带有有效控制参数的查询,它会自动显示与查询匹配的结果。 将其更改为从代码加载。然后您可以控制何时加载。 将你的 sqldatasource 移动到代码后面,并且不要在第一次加载时绑定你的 gridview 感谢您的建议。我已将其更改为后面的代码。解决方案发布在下面。 【参考方案1】:

我没有以编程方式将绑定到数据源的 gridview 移动到后面的代码中,而是从数据源中删除了 SelectCommand 并在第一次回发时以编程方式添加它。这样我的 gridview 仍然加载并显示我的 EmptyDataText 值。

Dim dataSourceBindComplete As Boolean = False

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    If IsPostBack Then
        If dataSourceBindComplete = False Then
            dataSourceBindComplete.SelectCommand = "SELECT Week_Ending, Employee, Project, Status_Of_Employment FROM Times WHERE (@Project IS NULL OR Project LIKE @Project) AND (@Employee IS NULL OR Employee LIKE @Employee) AND (@Status_Of_Employment IS NULL OR Status_Of_Employment LIKE @Status_Of_Employment) AND (@WeekEnding IS NULL OR Week_Ending = CONVERT(datetime, @WeekEnding, 103))"
            dataSourceBindComplete = True
        End If         
    End If
End Sub

【讨论】:

以上是关于asp.net中如何把sql中的数据查找出来,并且倒入到Excel文件中的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET 导出EXCEL时如何不把一些不是EXCEL的符号一起导出到EXCEL?

ASP.NET 把数据库中的数据查询出来后导出到Excel。

如何使用json从sql server ASP.net中检索数据

如何使用 json 从 sql server ASP.net 中检索数据

在 sql asp.net mvc 5 中使用 linq 时如何格式化记录中的数据?

ASP.NET + SQL SERVER + JSON = 如何在 SQL Server 的两个连接表中获取数据并加载为 JSON?