Excel文件导入页面中数据信息无法导入!请高手帮忙!

polyn 2003-09-24 09:44:29
源程序:
OleDbConnection myConnection = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\Inetpub\\wwwroot\\WebReport\\aa.xls;Extended Properties=Excel 8.0;");
OleDbCommand myCommand = new OleDbCommand("SELECT * FROM [Sheet1$]", myConnection);
OleDbDataAdapter OleAdapter = new OleDbDataAdapter("SELECT * FROM [Sheet1$]",myConnection);
DataSet myDataSet = new DataSet();

OleAdapter.Fill(myDataSet);
DataGrid1.DataSource = myDataSet.Tables[0];
DataGrid1.DataBind();

...全文
113 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
NetColorWolf 2003-10-02
  • 打赏
  • 举报
回复
我现在的处理方法,有两种
一种是在EXCEL中写宏,二是用COM对象更改EXCEL
不管哪种,都实现相同的功能:
 向每个CELL的值前面加入一个非空字符串,比如叫“值:”

然后用
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" +
"Data Source=C:\\Inetpub\\wwwroot\\contacts.xls;"+
"Extended Properties=Excel 8.0;";
这种方式得到DATASET,再对数据值进行处理(把前面的“值:”去掉)
lysamper 2003-10-02
  • 打赏
  • 举报
回复
可不可以先将excel转化成xml文件,再利用owc控件来读xml中的数据,这样不是很简单的嘛!至少我是这么作的
lyhold 2003-10-01
  • 打赏
  • 举报
回复
学习 1
NetColorWolf 2003-09-30
  • 打赏
  • 举报
回复
我也碰到相同的问题

我没找到很好的解决方法,不过,我发现如果在每个CELL的数据前加一个ASCII为160的字符,在DATAGRID中就可以显示出来
polyn 2003-09-24
  • 打赏
  • 举报
回复
请各位高手帮忙!
polyn 2003-09-24
  • 打赏
  • 举报
回复
可现在的问题是:我的excel中有的信息是数值型的,不如
姓名 年龄 地址
Tom 24 云南
Kill 28 北京
在读如DataGird中时年龄字段无法读出!
年龄的文本属性时数值型的!
acewang 2003-09-24
  • 打赏
  • 举报
回复
使用Excel文件做为DataGrid的数据源是非常简单的,一旦数据被装载进来,就可以把数据再保存进SQL Server或XML中。我们只需要简单地使用OLE DB Provider 来访问Excel文件,然后返回DataSet即可。
下面是要显示的Excel数据contact.xls:


姓名 性别 地址
net_lover Male amxh@21cn.com
amxh Male amxh@21cn.com
孟子 E 章 Male amxh@21cn.com


只需要指定Excel路径,并用[]选择一个工作表即可。

完整代码如下:
<%@ Page Language="C#" Debug="true" %>
<%@ Import Namespace="System.Data"%>
<%@ Import Namespace="System.Data.OleDb"%>

<script runat="server">

private DataSet CreateDataSource(){
string strConn;
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" +
"Data Source=C:\\Inetpub\\wwwroot\\contacts.xls;"+
"Extended Properties=Excel 8.0;";
OleDbConnection conn = new OleDbConnection(strConn);
OleDbDataAdapter myCommand = new OleDbDataAdapter("SELECT * FROM [ContactList$]", strConn);
DataSet myDataSet = new DataSet();
myCommand.Fill(myDataSet);
return myDataSet;
}


public void Page_Load(Object sender, EventArgs e){
if (!IsPostBack) {
mygrid.DataSource = CreateDataSource();
mygrid.DataBind();
}

}


</script>


<center>
<form runat="server">
<asp:datagrid runat="server" AutoGenerateColumns="false"
width="500" id="mygrid">

<HeaderStyle BorderColor="White" BackColor="black"
ForeColor="White"
Font-Bold="True"
Font-Name="Arial"
Font-Size="9" HorizontalAlign="Center"/>

<ItemStyle BorderColor=""
BackColor="#FFFFF0"
ForeColor="Black"
Font-Name="Arial"
Font-Size="8"
Font-Bold="False" HorizontalAlign="Center"/>

<Columns>

<asp:BoundColumn HeaderText="姓名" ReadOnly="true" DataField="姓名"/>
<asp:BoundColumn HeaderText="性别" ReadOnly="true" DataField="性别"/>
<asp:BoundColumn HeaderText="Email" ReadOnly="true" DataField="地址"/>
</Columns>

</asp:datagrid>
</form>

polyn 2003-09-24
  • 打赏
  • 举报
回复
请各位高手帮帮忙!

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧