asp.net读写EXCEL数据

myqxue 2010-06-08 10:47:17
读取excel中的数据显示在GridView,这个已经实现了

string strOdbcCon = @"Provider=Microsoft.ACE.OLEDB.12.0; Persist Security Info=False;Data Source=E:\aa.xlsx; Extended Properties=Excel 8.0";
//定义OleDbConnection对象实例并连接Excel表格
OleDbConnection OleDB = new OleDbConnection(strOdbcCon);
//定义OleDbDataAdapter对象实例并调用Select查询语句提取Excel数据信息
OleDbDataAdapter OleDat = new OleDbDataAdapter("select * from [Sheet1$]", OleDB);
DataTable dt = new DataTable(); //定义DataTable对象实例
OleDat.Fill(dt);
OleDat.Dispose();
OleDB.Close();

将GridView1修改的数据写回excel中,这个怎么实现?

在线等,谢谢
...全文
277 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
六六木木 2010-06-08
  • 打赏
  • 举报
回复
网上应该有解决方法、
Ny-6000 2010-06-08
  • 打赏
  • 举报
回复
另存文件了,不可能存到原有文件中去吧
zhubo006 2010-06-08
  • 打赏
  • 举报
回复
用流 可以参考这段代码

http://blog.163.com/lily_lee81/blog/static/100942563200911615836261/
myqxue 2010-06-08
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 jickie_liu 的回复:]
关注一下,
LZ可以将GridView作为数据源,将数据重新导入到Excel当中去。
[/Quote]

能给些代码吗?
laoban108 2010-06-08
  • 打赏
  • 举报
回复
http://blog.csdn.net/pkerboy/archive/2007/06/22/1662157.aspx
http://topic.csdn.net/u/20100525/13/eda0fbf8-5e00-4f0f-9e2c-b1f2da60e131.html
可能有帮助。
奔跑吧公牛 2010-06-08
  • 打赏
  • 举报
回复
关注一下,
LZ可以将GridView作为数据源,将数据重新导入到Excel当中去。
myqxue 2010-06-08
  • 打赏
  • 举报
回复
试下吧
kevinasp 2010-06-08
  • 打赏
  • 举报
回复
网上的方法:
public void CreateExcel(DataSet ds, string typeid, string FileName)
{
HttpResponse resp;
resp = Page.Response;
resp.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
//resp.ContentEncoding = System.Text.Encoding.GetEncoding("BIG5");
resp.AppendHeader("Content-Disposition", "attachment;filename=" + FileName);
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 - 1; i++)
{
colHeaders += dt.Columns[i].Caption.ToString() + "\t";
//colHeaders +=dt.Columns[i].Caption.ToString() +"\n";
}
colHeaders += dt.Columns[i].Caption.ToString() + "\n";
//向HTTP输出流中写入取得的数据信息
resp.Write(colHeaders);
//逐行处理数据
foreach (DataRow row in myRow)
{
//在当前行中,逐列获得数据,数据之间以\t分割,结束时加回车符\n
for (i = 0; i < dt.Columns.Count - 1; i++)
{
ls_item += row[i].ToString() + "\t";
//ls_item += row[i].ToString() +"\n";
}
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());
}
}
//写缓冲区中的数据到HTTP头文件中
resp.End();


}
怪人伽利略 2010-06-08
  • 打赏
  • 举报
回复
认真学习,
骑猪看海 2010-06-08
  • 打赏
  • 举报
回复
引用Microsoft.Office.Interop.Excel

object missing = Missing.Value;
ApplicationClass excel;
_Workbook xBk;
_Worksheet xSt;

excel = new ApplicationClass();
xBk = excel.Workbooks.Open(Server.MapPath("aa.xlsx"), missing, missing, missing, missing, missing,
missing, missing, missing, missing, missing, missing, missing, missing, false);
xSt = (_Worksheet)xBk.ActiveSheet
excel.Cells[5, 1] ="aaaa"; //第5行第1列的内容等于aa
骑猪看海 2010-06-08
  • 打赏
  • 举报
回复

protected void btnOK_Click(object sender, EventArgs e)
{
Response.Clear();
Response.Buffer = true;
Response.Charset = "GB2312";
Response.AppendHeader("Content-Disposition", "attachment;filename=" + Server.UrlEncode(DateTime.Now.ToString("yyyyMMddhhmmss") + ".xls"));
//Response.ContentEncoding = System.Text.Encoding.GetEncoding("Unicode");
Response.ContentEncoding = System.Text.Encoding.GetEncoding("UTF-8");
Response.ContentType = "application/ms-excel";
this.EnableViewState = false;
System.IO.StringWriter oStringWriter = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);
ejiaA1.Columns[0].Visible = false;
ejiaA1.RenderControl(oHtmlTextWriter);
Response.Output.Write(oStringWriter.ToString());
Response.Flush();
Response.End();
}

ejiaA1为GridView ,要加上下面的方法才行

public override void VerifyRenderingInServerForm(Control control)
{

}
东莞寻香苑 2010-06-08
  • 打赏
  • 举报
回复
还真没有办法,现在我的脑代除了调用EXCEL的COM打开这个EXCEL文件,再一行行(一个个单元格)的比较的,还真没有办法处理,但那样的速度又N慢
  • 打赏
  • 举报
回复
只会讲数据到出到Excel中 还不会更改

62,042

社区成员

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

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

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

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