我有一个数据网格视图。我需要使用一个按钮将该gridview数据导出/导入到excel表格,使用asp.net mvc。
有人可以帮我解决这个问题。
感谢。
答案 0 :(得分:1)
如果要由客户端提交数据,则将其POST到服务器。一旦它在服务器上,创建一个StringBuilder并将数据转换为一个大字符串,在每行之后使用逗号分隔列分隔符和换行符。然后返回一个新的FileResult:
在您的控制器中,创建了StringBuilder sb:
之后MemoryStream ms = new MemoryStream();
StreamWriter writer = new StreamWriter(ms, Encoding.UTF8);
writer.Write(sb.ToString());
writer.Flush();
ms.Position = 0;
return File(ms, "application/vnd.ms-excel", "myfile.csv");
导入Excel数据是另一回事。我没有做太多的事情,所以希望其他人能够提供一些见解。
答案 1 :(得分:1)
要从excel导入,请照常上传文件。 然后引用Microsoft.Office.Interop.Excel.dll(来自office 11),您可以使用excel api迭代工作表并提取数据。
答案 2 :(得分:1)
我的建议是使用LocalReport来渲染结果。您只需使用所需的布局创建rdlc文件(在项目中添加新报告)。然后你必须传递你想要绑定的数据并调用Render方法(你可以返回excel和pdf)。老实说,我手边没有任何示例代码,但如果你稍微谷歌一点,你肯定会找到如何做到这一点。 祝你好运。
答案 3 :(得分:1)
您可以绕过Excel自动化并像这样使用OleDbConnection
connectionString = ("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties='Excel 8.0;'";
...
connectionString = string.Format(connectionString, fileName);
OleDbConnection conn = new OleDbConnection(connectionString)
.............
// You can create table or insert value using SQL statement
// Create your OleDbCommand and execute it.
............
conn.Close();