谁那有ASP。NET关与EXECL操作的代码,50分求!!!

问题描述

数据导入Execl问题谁解决过,有代码的请帖上来。。。。

解决方案

解决方案二:
在VB.NET同样可以将报表导出到Excel和Word进行输出,制作出专业水平的报表。具体操作如下:(注:首先需添加引用,选择COM-->选择MicrosoftWordObjectLibrary和MicrosoftExcelObjectLibrary组件)PrivateFunctionCreaTable()AsDataTableDimdtAsNewDataTable()dt.Columns.Add("列1",GetType(String))dt.Columns.Add("列2",GetType(Integer))dt.Columns.Add("列3",GetType(String))dt.Columns.Add("列4",GetType(String))Dimrow,row1AsDataRowrow=dt.NewRow()row!列1="行1"row!列2=1row!列3="d"row!列4="a"dt.Rows.Add(row)row1=dt.NewRow()row1!列1="行2"row1!列2=12row1!列3="b"row1!列4="c"dt.Rows.Add(row1)ReturndtEndFunction'2.将表中的内容导出到ExcelDimxlAppAsNewExcel.Application()DimxlBookAsExcel.WorkbookDimxlSheetAsExcel.WorksheetDimrowIndexAsInteger=1DimcolIndexAsInteger=0xlBook=xlApp.Workbooks().AddxlSheet=xlBook.Worksheets("sheet1")DimTableAsNewDataTable()Table=CreaTable()'将所得到的表的列名,赋值给单元格DimColAsDataColumnDimRowAsDataRowForEachColInTable.ColumnscolIndex=colIndex+1xlApp.Cells(1,colIndex)=Col.ColumnNameNext'得到的表所有行,赋值给单元格ForEachRowInTable.RowsrowIndex=rowIndex+1colIndex=0ForEachColInTable.ColumnscolIndex=colIndex+1xlApp.Cells(rowIndex,colIndex)=Row(Col.ColumnName)NextNextWithxlSheet.Range(.Cells(1,1),.Cells(1,colIndex)).Font.Name="黑体"'设标题为黑体字.Range(.Cells(1,1),.Cells(1,colIndex)).Font.Bold=True'标题字体加粗.Range(.Cells(1,1),.Cells(rowIndex,colIndex)).Borders.LineStyle=1'设表格边框样式EndWithWithxlSheet.PageSetup.LeftHeader=""&Chr(10)&"&""楷体_GB2312,常规""&10公司名称:"'&Gsmc.CenterHeader="&""楷体_GB2312,常规""公司人员情况表&""宋体,常规"""&Chr(10)&_"&""楷体_GB2312,常规""&10日期:".RightHeader=""&Chr(10)&"&""楷体_GB2312,常规""&10单位:".LeftFooter="&""楷体_GB2312,常规""&10制表人:".CenterFooter="&""楷体_GB2312,常规""&10制表日期:".RightFooter="&""楷体_GB2312,常规""&10第&P页共&N页"EndWithxlApp.Visible=True'3.将表中的内容导出到WORDDimwordAppAsNewWord.Application()DimmyDocAsWord.DocumentDimoTableAsWord.TableDimrowIndex,colIndexAsIntegerrowIndex=1colIndex=0wordApp.Documents.Add()myDoc=wordApp.ActiveDocumentDimTableAsNewDataTable()Table=CreaTable()oTable=myDoc.Tables.Add(Range:=myDoc.Range(Start:=0,End:=0),_NumRows:=Table.Rows.Count+1,NumColumns:=Table.Columns.Count)'将所得到的表的列名,赋值给单元格DimColAsDataColumnDimRowAsDataRowForEachColInTable.ColumnscolIndex=colIndex+1oTable.Cell(1,colIndex).Range.InsertAfter(Col.ColumnName)Next'得到的表所有行,赋值给单元格ForEachRowInTable.RowsrowIndex=rowIndex+1colIndex=0ForEachColInTable.ColumnscolIndex=colIndex+1oTable.Cell(rowIndex,colIndex).Range.InsertAfter(Row(Col.ColumnName))NextNextoTable.Borders.InsideLineStyle=1oTable.Borders.OutsideLineStyle=1wordApp.Visible=True
解决方案三:
privatevoidbtnReadData_Click(objectsender,System.EventArgse){if(File1.Value.Length>1){stringfileName=System.IO.Path.GetFileName(File1.PostedFile.FileName);stringfilePath="";if(this.File1.Value==""){//Comm.Jscript.Alert("请先选择您要导入的文件!");}else{intindex=fileName.LastIndexOf(".");if(index>0){if(fileName.Substring(index)==".xls"){DateTimenow=DateTime.Now;fileName=now.ToShortDateString()+now.ToLongTimeString();fileName=fileName.Replace("-","").Replace(":","").Replace("","");filePath=@"../uploads/"+fileName+".xls";this.File1.PostedFile.SaveAs(Server.MapPath(filePath));}else{//Comm.Jscript.Alert("读入的文件不是XLS");}}}if(filePath!=""){fileName=Request.MapPath(filePath);//stringstrConn="Provider=Microsoft.Jet.Oledb.4.0;DataSource="+Dir+"\"+fileName+";ExtendedProperties="Excel8.0;HDR=Yes;IMEX=1;"stringstrConn="Provider=Microsoft.Jet.OLEDB.4.0;DataSource="+fileName+";ExtendedProperties='Excel8.0;HDR=Yes;IMEX=1;'";stringquery="SELECT*FROM[Sheet1$]";OleDbCommandoleCommand=newOleDbCommand(query,newOleDbConnection(strConn));OleDbDataAdapteroleAdapter=newOleDbDataAdapter(oleCommand);DataSetmyDataSet=newDataSet();//将Excel的[Sheet1]表内容填充到DataSet对象try{oleAdapter.Fill(myDataSet,"[Sheet1$]");//数据绑定this.dgExportProject.DataSource=myDataSet;this.dgExportProject.DataMember="[Sheet1$]";this.dgExportProject.DataBind();this.dgExportProject.Visible=true;this.btnSave.Visible=true;}catch(Exceptionexx){Response.Write(exx.Message);//Comm.Jscript.Alert("注意:请用默认的Sheet1$页名称!");}finally{if(File.Exists(filePath)){File.Delete(filePath);}}}}else{Response.Write("<script>alert('请选择正确的路径!')</script>");}}privatevoidbtnSave_Click(objectsender,System.EventArgse){stringconn=ConfigurationSettings.AppSettings["datasource"];SqlConnectionsqlConn=newSqlConnection(conn);{try{if(sqlConn.State==ConnectionState.Closed){sqlConn.Open();}foreach(DataGridItemiteminthis.dgExportProject.Items){if(item.Cells.Count==2){stringwldm=item.Cells[0].Text.Trim().Replace("&nbsp;","");stringcgjg=item.Cells[1].Text.Trim().Replace("&nbsp;","");stringsSQL="InsertIntowljg(wldm,cgjg)Values('"+wldm+"','"+cgjg+"')";SqlCommandcmd=newSqlCommand(sSQL,sqlConn);cmd.CommandType=CommandType.Text;try{cmd.ExecuteNonQuery();Response.Write("<script>alert('导入数据成功!')</script>");}catch{Response.Write("<script>alert('导入数据出错,请联系管理员!')</script>");}cmd.Dispose();}else{//Comm.Jscript.Alert("注意:请按照模板格式导入项目信息!");return;}}}catch(Exceptionexx){Response.Write(exx.Message);}finally{if(sqlConn.State==ConnectionState.Open){sqlConn.Close();}}}this.dgExportProject.Visible=false;this.btnSave.Visible=false;}}
解决方案四:
你要是操作Excel的API就比较麻烦了用OLEDB连上比较容易的
解决方案五:
StringWritersw=newStringWriter();sw.WriteLine("编号,状态,操作量");for(inti=0;i<数据List.Count;i++){sw.WriteLine(数据List[i].编号+"','"+数据List[i].状态+"','"+数据List[i].操作量);}sw.Close();Response.AddHeader("Content-Disposition","attachment;filename="+文件名+".xls");Response.ContentType="application/ms-excel";Response.ContentEncoding=System.Text.Encoding.GetEncoding("GB2312");Response.Write(sw);Response.End();其中的“数据List”为泛型数据源。
解决方案六:
该回复于2008-04-17 12:09:19被版主删除
解决方案七:
参考:
解决方案八:
本论坛就有,

时间: 2024-09-15 11:21:51

谁那有ASP。NET关与EXECL操作的代码,50分求!!!的相关文章

asp批量添加修改删除操作示例代码

核心代码: <title>asp批量添加修改删除操作示例</title> <% if request.Form("op")="update" then'表单提交 ids=request.Form("ids") if ids<>"" then response.Write "要删除的数据id集合:"&ids&"<br>"

50分 求如何使 asp.net1.1 编程问题!!-------------- 在线等!!解决立马结贴!!!!

问题描述 在asp.net2.0中,假如网站有index.aspx和index.aspx.cs两个文件,每当index.aspx.cs有所改动的时候,我们只要在IIS中设定好虚拟目录,然后在浏览器内重新运行一次index.aspx就可以看到改动后的效果.因为.net2.0会自动预编译.但目前我试着以此种方法手动改动一个asp.net1.1网站时,(为了能看到改动后的效果,我删除了网站Bin目录下的文件),当修改index.aspx.cs后在浏览器运行发现不能像asp.net2.0那样直接看到改动

asp.net下Cache 缓存操作类代码

复制代码 代码如下: using System.Collections.Generic; using System.Web; using System; namespace DataAccess { /// <summary> /// 缓存控制类 /// </summary> public class CacheControl { public static List<string> AllUseCacheKey = new List<string>();

asp.net下Cache 缓存操作类代码_实用技巧

复制代码 代码如下: using System.Collections.Generic; using System.Web; using System; namespace DataAccess { /// <summary> /// 缓存控制类 /// </summary> public class CacheControl { public static List<string> AllUseCacheKey = new List<string>();

asp.net上传execl文件后,在页面上加载显示

 本篇文章主要是对asp.net上传execl文件后,在页面上加载显示(示例代码)进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助  代码如下:     #region 上传Execl文件     protected void Button1_Click(object sender, EventArgs e)     {         if (FileUpload1.HasFile)         {             string NewFileName = string.E

ASP.NET:了解WEB窗体的代码模型

asp.net|web 一个ASP.NET页面由两部分组成:一是使用静态文本和服务器控件的用户界面定义,二是用户界面行为和服务器端代码形式的Web应用程序逻辑的实现. ASP.NET提供了全新的代码模型,使得网页开发者和开发工具能够更清晰.更容易地把代码与表示分开.对比ASP来说,这个特征是一个重要的改进,ASP需要代码遍布在整个页面的静态内容之中.ASP.NET代码模型使得开发和设计团队中的分工更加容易,并增加了代码和内容的可读性和可维护性. 这个全新的代码模型通常使用两种形式之一.第一种形式

asp实现无限级目录数的关键代码部分

asp实现无限目录数的关键代码部分 <% set conn=server.createobject("ADODB.CONNECTION") connstr="DBQ="+server.mappath("db1.mdb")+";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};" conn.open connstr function menu(id) set rs=s

[原创] EasyASP v1.5简化ASP开发,包含数据库操作类

EasyASP v1.5简化ASP开发,包含数据库操作类 EasyASP是一个方便快速开发ASP的类,其中包含了一个数据库控制类(原clsDbCtrl.asp,对原代码作了优化和修改,包含对数据库的各类操作及存储过程的调用,全部封装在Easp.db中,使用起来会更方便,调用也更简单).而Easp类中提供了大量实用的ASP通用过程及方法,可以简化大部分的ASP操作.目前只提供了VBScript版,JScript版将来可能会提供.详细说明请下载帮助手册,里面有非常详细的使用方法说明及源码范例. 源码

简化你的ASP编写工作 (原数据库操作类clsdbCtrl.asp)

首先,认为ASP已经过时的人,请忽略此帖,谢谢.俺这里只是提供一种思路,希望能给很多还在学习和使用ASP的朋友一种方便.尽管俺现在也很少用ASP了,但俺相信只要能满足应用,就没有什么过时不过时的,也许它的语言没那么高级,但做出来的应用不一定就低级,呵呵.     EasyASP是一个方便快速开发ASP的类,其中包含了一个数据库控制类(原clsDbCtrl.asp,对原代码作了优化和修改,包含对数据库的各类操作及存储过程的调用,全部封装在Easp.db中,使用起来会更方便,调用也更简单).而Eas