在asp.net中怎么使用ado.net连接excel数据源?
怎么把数据库中的数据导如excel啊(用ado.net)?
望高手指点
怎么把数据库中的数据导如excel啊(用ado.net)?
望高手指点
解决方案 »
- 急,待解决,在线等
- 关于Rss的问题高手帮忙啊!(在线等)
- 如何显示sqlserver中image字段中的图片?
- Javascript输出的文本如何让搜索引擎索引到???
- 请朋友们帮我看看这样的服务器配置够用吗?
- 开源TextBox新版本发布,免去无法设置TextArea最大长度的烦恼!
- 新人求助,关于ASP.NET Web Matrix的使用
- 在服务器端弹出alert对话框的时候,网页突然就变成空白了,请问有没有好的办法解决?
- 各位,大家来讨论一下,如何实CSDN左侧的风格,欢迎大家发言!
- 请问:有没有直接获得数据库中某个表的全部字段名的语句,如果有,是什么?
- 问下关于Calendar控件的SelectionChanged事件参数
- 关于dataset
2、利用SQL-SEVER 中的功能。
选择指定Excel文件中的数据
SELECT * FROM
OPENROWSET(’MICROSOFT.JET.OLEDB.4.0’,’Excel 5.0;HDR=YES;DATABASE=c:\test.xls’,sheet1$)
将数据导入到指定的Excel文件中
1)如果Excel文件已经存在,而且已经按照要接收的数据创建好表头,就可以简单的用:
INSERT INTO
OPENROWSET(’MICROSOFT.JET.OLEDB.4.0’,’Excel 5.0;HDR=YES;DATABASE=c:\test.xls’,sheet1$)
SELECT * FROM 表
2)如果Excel文件不存在,也可以用BCP来导出并生成Excel的文件,注意大小写:
1)导出表
EXEC master..xp_cmdshell
’bcp
数据库名.dbo.表名
out "c:\test.xls" /c -/S"服务器名" /U"用户名" -P"密码"’
2)导出查询
EXEC master..xp_cmdshell
’bcp
"SELECT au_fname,au_lname FROM pubs..authors ORDER BY au_lname"
queryout "c:\test.xls" /c -/S"服务器名" /U"用户名" -P"密码"’
http://community.csdn.net/Expert/topic/4278/4278743.xml?temp=.6340296
<% @Import Namespace="System.Data.OleDb" %>
<HTML>
<HEAD>
<title>如何读取Excel表格中的数据</title>
<script language="C#" runat="server">
void SubmitBtn_Click(object sender, System.EventArgs e)
{
// 获取Excep文件的完整路径
string source = File1.Value; string ConnStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + source + ";Extended Properties=Excel 8.0";
string query = "SELECT * FROM [Sheet1$]"; OleDbCommand oleCommand = new OleDbCommand(query, new OleDbConnection(ConnStr));
OleDbDataAdapter oleAdapter = new OleDbDataAdapter(oleCommand);
DataSet myDataSet = new DataSet(); // 将 Excel 的[Sheet1]表内容填充到 DataSet 对象
oleAdapter.Fill(myDataSet, "[Sheet1$]"); // 数据绑定
DataGrid1.DataSource = myDataSet;
DataGrid1.DataMember = "[Sheet1$]";
DataGrid1.DataBind();
}
</script>
</HEAD>
<body>
<form id="Form1" method="post" runat="server">
<H3>如何读取Excel表格中的数据</H3>
请选择Excel表格:<BR>
<INPUT type="file" id="File1" name="File1" runat="server" size="26"><br>
<asp:Button
id="SubmitBtn"
runat="server"
Text="开始显示"
OnClick="SubmitBtn_Click">
</asp:Button><br>
<br>
<asp:DataGrid id="DataGrid1" runat="server"></asp:DataGrid>
</form>
</body>
</HTML>
下的打印操作Excel
//连接字符串的10.0可根据你的EXCEL版本,修改为11.0或9.0等,我忘记具体是几点零了
OleDbConnection con=new OleDbConnection(strConn);
con.Open();
DataTable tbltemp = new DataTable;
OleDbDataAdapter ada=new OleDbDataAdapter("select * From [Sheet1$]",con);
ada.Fill(tbltemp);
//到此,Excel文件中的内容已经填充到datatable中了
//默认状态,EXCEL文件的第一行被当作列名称了
EXEC master..xp_cmdshell 'bcp SettleDB.dbo.shanghu out c:\temp1.xls -c -q -S"GNETDATA/GNETDATA" -U"sa" -P""'/*********** 导入Excel
SELECT *
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:\test.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...xactions
public void CreateExcel(DataSet ds,string typeid,string FileName)
{
HttpResponse resp;
resp = Page.Response;
resp.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312");//utf-8 if (typeid=="1")
resp.AppendHeader("Content-Disposition", "attachment;filename=filename.xls");// + FileName);
else
resp.AppendHeader("Content-Disposition", "attachment;filename=filename.xml");// + FileName); Response.ContentType = "application/ms-excel";
string colHeaders= "", ls_item="";
int i=0; //定义表对象与行对像,同时用DataSet对其值进行初始化
DataTable dt=ds.Tables[0];
DataRow[] myRow=dt.Select(""); // typeid=="1"时导出为EXCEL格式文件;typeid=="2"时导出为XML格式文件
if(typeid=="1")
{
//取得数据表各列标题,各标题之间以\t分割,最后一个列标题后加回车符
for(i=0;i<dt.Columns.Count;i++)
{
colHeaders+=dt.Columns[i].Caption.ToString()+"\t";
}
colHeaders+="\n"; //向HTTP输出流中写入取得的数据信息
resp.Write(colHeaders);
//逐行处理数据
foreach(DataRow row in myRow)
{
//在当前行中,逐列获得数据,数据之间以\t分割,结束时加回车符\n
for(i=0;i<row.ItemArray.Length-1;i++)
{
ls_item +=row[i].ToString() + "\t";
}
ls_item += row[i].ToString() +"\n";
//当前行数据写入HTTP输出流,并且置空ls_item以便下行数据
resp.Write(ls_item);
ls_item="";
}
}
else
{
if(typeid=="2")
{
//从DataSet中直接导出XML数据并且写到HTTP输出流中
resp.Write(ds.GetXml());
}
} if (ds.Tables.Count>0)
ds.Tables.Remove(ds.Tables[0]); //写缓冲区中的数据到HTTP头文件中
resp.End();
}