从SQL Server或asp.net/C#(mvc 3)页面将数据导入excel
我需要制作一个excel文件,它将从连接到ms sql表的连接中获取数据。目前,我正在将数据导出到xml(通过mvc 3页面),然后通过以下方式将其导入excel: 我不想简单地用数据生成excel文件,因为我希望用户能够在excel中点击刷新按钮,随时获取新的数据。我的问题是,可能有多达100000行,而excel在解析xml文件时速度非常慢,这种方式会将整个cpu核心锁定几分钟。使用它是不可能的 有没有更优化的方法来实现这一点?我可以尝试直接从ms sql获取数据,但我不希望用户能够读取整个表——他应该只能读取“他的”行。这就是为什么我现在使用xml——我可以在链接中包含他的登录名,然后只返回他有权访问的行。如果我允许他访问ms sql,我必须为每个客户端创建单独的登录和视图,这将是一个自动化的痛苦。。。此外,我不确定那会快多少从SQL Server或asp.net/C#(mvc 3)页面将数据导入excel,c#,sql-server,excel,C#,Sql Server,Excel,我需要制作一个excel文件,它将从连接到ms sql表的连接中获取数据。目前,我正在将数据导出到xml(通过mvc 3页面),然后通过以下方式将其导入excel: 我不想简单地用数据生成excel文件,因为我希望用户能够在excel中点击刷新按钮,随时获取新的数据。我的问题是,可能有多达100000行,而excel在解析xml文件时速度非常慢,这种方式会将整个cpu核心锁定几分钟。使用它是不可能的 有没有更优化的方法来实现这一点?我可以尝试直接从ms sql获取数据,但我不希望用户能够读取整个
对不起,由于描述不清楚,我不确定调用Excel导入数据的方式是什么,而且也不能真正找到它。
< P>如果您已经使用Web服务器生成XML文件,那么考虑从数据库中立即生成CSV文件。然后,用户可以从此CSV文件导入数据。其工作如下:MemoryStream ms
对象DataReader
或SqlDataReader
读取查询结果,并以CSV格式(逗号分隔的值)将其写入ms
内容配置:附件;filename=report.csv
标题并使用Response.BinaryWrite()
将csv发送给用户