我需要允许此ASP.NET web应用程序的用户上载特定格式的Excel电子表格,用电子表格中的数据填充数组,并将数组绑定到Oracle存储过程以进行验证并插入数据库。我必须能够从Excel电子表格中读取数据,而不必将其保存到web服务器的硬盘。这是我不知道该怎么做的部分。下面是一个简单的代码示例
<;%--ASP.NET声明性--%>;
<;asp:FileUpload ID=“FileUpload1”runat=“server”/>;
<;asp:Button ID=“Button1”runat=“server”Text=“Send File”OnClick=“Button1\u Click”/gt;
//C#代码隐藏
受保护的无效按钮1\u单击(对象发送者,事件参数e){
var postedFile=FileUpload1.postedFile;
//…读取内存中的文件并将其格式发送到存储过程。。。
}
有人能帮我吗?我感谢任何人的关心
thx,
盖布
我在Codeplex上找到了一个很棒的轻量级开源API,名为ExcelDataReader
它可以将excel文件的输入流转换为System.Data.DataSet
对象(可能使用BIFF规范进行解析)
以下是链接:
http://www.codeplex.com/ExcelDataReader
下面是一个代码示例:
<;%--ASP.NET声明性--%>;
<;asp:FileUpload ID=“FileUpload1”runat=“server”/>;
<;asp:Button ID=“Button1”runat=“server”Text=“Send File”OnClick=“Button1\u Click”/gt;
<;asp:GridView ID=“GridView1”runat=“server”/>;
//C#代码隐藏
受保护的无效按钮1\u单击(对象发送者,事件参数e){
//ExcelDataReader接受System.IO.Stream对象
var excelReader=新的ExcelDataReader(FileUpload1.FileContent);
FileUpload1.FileContent.Close();
数据集wb=excelReader.WorkbookData;
//获取工作簿的第一个工作表
DataTable dt=excelReader.WorkbookData.Tables[0];
GridView1.DataSource=dt.AsDataView();
GridView1.DataBind();
}