我正在通过Linq to SQL生成一个报告并在网站上显示它.
我需要将报告保存在MS Excel(或.csv)中并通过电子邮件发送给用户.
有关如何将其保存为Excel或.csv的任何想法?
.NET 3.5/C#
编辑:在GridView的黑客可以完美运行.如果您在页面上使用AJAX,请确保将PostBaseTrigger添加到更新面板以导致完全POSTBACK,否则将无法正常工作.
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:Button ID="Button1" runat="server" Text="Export Grid"
onclick="Button1_Click" />
</ContentTemplate>
<Triggers>
<asp:PostBackTrigger ControlID="Button1" />
</Triggers>
</asp:UpdatePanel>
Run Code Online (Sandbox Code Playgroud)
我还发现了一个用.NET生成Excel XML工作簿的库,但它并不像公认的解决方案那么简单.
转到关于Code Project的LINQtoCSV上的这篇文章.然后打开VS中的源代码并注释掉FieldMapper.cs中的第201行以修复导致列排序错误的错误:
//Array.Sort(m_IndexToInfo);
Run Code Online (Sandbox Code Playgroud)
重新编译,你很高兴.
(我从文章的评论中发现)
然后使用:
CsvFileDescription outputFileDescription = new CsvFileDescription
{
SeparatorChar = '\t', // tab delimited
FirstLineHasColumnNames = false // no column names in first record
};
CsvContext cc = new CsvContext();
cc.Write(
YOUR_IQUERYABLE_RESULT_HERE,
"filename.csv",
outputFileDescription);
Run Code Online (Sandbox Code Playgroud)
我做了一个简化的IQueryable <T> .WriteToFile(路径)扩展方法,但我没有在这台机器上.
| 归档时间: |
|
| 查看次数: |
3021 次 |
| 最近记录: |