ASP.NET中上传并读取Excel文件数据示例_6
点聚weboffice 6.0 ASP.NET 在线Word,excel,wps编辑控件
点聚weboffice 6.0 在线Word,excel,wps编辑控件WebOffice是一款由北京点聚信息技术有限公司提供的完全免费(商业用途也免费)且功能强大的在线Word/excel/wps编辑辅助控件,可以实现:1.在线编辑Word、Excel、PPT、WPS... ...2.全面支持MS Office的界面定制,包括对于Office2007的全面支持3.修订留痕4.限制打印、保存、复制5.直接保存到服务器,支持标准Http Post协议6.强大的书签管理7.套红、文档保护8.模板管理9.其他功能扩展点聚WebOffice是基于客户端的ocx控件,它的功能是将Office文档(Word、Excel、WPS)嵌入到浏览器中,并调用Office中各种接口,完成文档编辑工作,然后使用控件的Http 接口模拟表单提交,发送到数据处理页面(此文档举例为saveDoc.asp页,代码见演示文件),完成文档的存档工作。
在本地测试的时后,首先要安装插件和证书WebOffice_Setup.exe和孙小钢.pfx,然后用VS来运行示例,不要直接打开HTML,那样会报错的webOffice控件自动下载是指在打开网页时,网页会自动把webOffice控件下载下来,从而可以将word、excel嵌入到网页中。
控件自动下载的相关代码如下:< object id=WebOffice height=768 width="100%"style="LEFT: 0px; TOP: 0px"classid="clsid:E77E049B-23FC-4DB8-B756-60529A35FAD5" codebase="../js/WebOffice1.ocx#version=6,0,4,0"><param name="_ExtentX" value="6350"><param name="_ExtentY" value="6350">object>上面的脚本意思是:自动更新classid=FF1FE7A0-0578-4FEE-A34E-FB21B277D561 的COM组件,更新地址为../js/WebOffice1.ocx,codebase后的路径为相对路径也可为绝对路径,要更新的最新版本为6,0,4,0。
ASP对Excel的所有操作
A: 同一用户生成的Excel文件用同一个文件名,文件名可用用户ID号或SessionID号等可确信不重复字符串组成。这样新文件生成时自动覆盖上一文件。
B: 在Global.asa文件中设置Session_onEnd事件激发时,删除这个用户的Excel暂存文件。
C: 在Global.asa文件中设置Application_onStart事件激发时,删除暂存目录下的所有文件。
6、 绑定Chart图
objExcelApp.ActiveChart.Location 1
7、 显示数据表
objExcelApp.ActiveChart.HasDataTable = True
8、 显示图例
objExcelApp.ActiveChart.DataTable.ShowLegendKey = True
目录
一、 环境配置
二、 ASP对Excel的基本操作
三、 ASP操作Excel生成数据表
四、 ASP操作E件浏览、下载、删除方案
六、 附录
正文
一、 环境配置
服务器端的环境配置从参考资料上看,微软系列的配置应该都行,即:
1.Win9x+PWS+Office
2、 新建Excel文件
objExcelApp.WorkBooks.add
set objExcelBook = objExcelApp.ActiveWorkBook
set objExcelSheets = objExcelBook.Worksheets
set objExcelSheet = objExcelBook.Sheets(1)
使用Aspose插件对Excel操作
使⽤Aspose插件对Excel操作使⽤使⽤Aspose插件对Excel⽂档进⾏导⼊导出操作使⽤前请先下载Aspose插件引⽤Excel导⼊:前台使⽤file标签获取,submit⽅式提交。
<form id="form1" enctype="multipart/form-data" method="post"><table class="table-condensed"><tr><td class="text-right">导⼊表格:</td><td class="text-left"><input type="file" name="file1" class="btn btn-default btn-lg"/></td></tr><tr><td class="text-left"><input type="submit" id="btnImport" name="btnImport" value="导⼊" class="btn btn-default"/></td></tr></table></form>后台接收:HttpPostedFileBase fileBase = Request.Files["file1"];//这⾥获取名称与前台标签name保持⼀致if (fileBase != null){string filename = Path.GetFileName(fileBase.FileName);string extension = Path.GetExtension(filename);string path = "/Upload/Test/" + DateTime.Now.ToString("yyyyMMdd") + "/";Directory.CreateDirectory(Path.GetDirectoryName(Request.MapPath(path)));string newFilename = DateTime.Now.ToString("yyyyMMddHHmmssfff");string fullFileName = path + newFilename + extension;fileBase.SaveAs(Request.MapPath(fullFileName)); try{ Stopwatch sw = new Stopwatch();//记录导⼊操作⽤时多长sw.Start();//这⾥可放⼊BLL⽅法处理string result = new ProductBLL().ImportExcel(Request.MapPath(path), newFilename, extension);//BLL⽅法 ProductBLLpublic string ImportExcel(string path, string filename, string extension){Workbook workbook = new Workbook(path + filename + extension);Worksheet worksheet = workbook.Worksheets[0];Cells cells = worksheet.Cells;for (int i = 1; i < cells.Rows.Count; i++){try{string brand = cells[i, 0].StringValue.Trim();//获取列值string years = cells[i, 1].StringValue.Trim();}catch (Exception e){continue;}}return "OK";} sw.Stop();long runTime = sw.ElapsedMilliseconds / 1000; //获取到操作⽤时多少秒 } catch (Exception e){Log.Write("导⼊", "导⼊错误", "错误信息:" + e.Message);}}Excel导出:string path = "/Upload/Test/" + DateTime.Now.ToString("yyyyMMdd") + "/";Directory.CreateDirectory(Path.GetDirectoryName(Server.MapPath(path)));string newFilename = DateTime.Now.ToString("yyyyMMddHHmmssfff") + ".xls";string fullFileName = Server.MapPath(path + newFilename);public void ExportInfo(List<Test> list, string fullFileName){Aspose.Cells.Workbook workbook = new Aspose.Cells.Workbook();Aspose.Cells.Worksheet cellSheet = workbook.Worksheets[0];cellSheet.PageSetup.LeftMargin = 0.3;//左边距cellSheet.PageSetup.RightMargin = 0.3;//右边距cellSheet.PageSetup.TopMargin = 1;//上边距cellSheet.PageSetup.BottomMargin = 0.5;//下边距cellSheet.PageSetup.FooterMargin = 0.5;//页脚cellSheet.PageSetup.HeaderMargin = 0.5;//页眉cellSheet.PageSetup.Orientation = ndscape;cellSheet.PageSetup.CenterHorizontally = true;//⽔平居中cellSheet.PageSetup.CenterVertically = true;cellSheet.Cells[0, 0].PutValue("货号");cellSheet.Cells[0, 1].PutValue("颜⾊");cellSheet.Cells[0, 2].PutValue("尺码");int i = 1;foreach (var item in list){cellSheet.Cells[i, 0].PutValue(item.productno);cellSheet.Cells[i, 1].PutValue(item.size);cellSheet.Cells[i, 2].PutValue(item.color);i++;}cellSheet.AutoFitColumns();fullFileName = Path.GetFullPath(fullFileName);workbook.Save(fullFileName);}return File(fullFileName, "application/ms-excel", UserName + "_Test单" + newFilename);// ⽅法Action⾥直接返回File⽂件下载。
ASP.NET中GridView读取Excel数据的实现
中图分类号 T 3 2 P 9
G iVe r i d w显示控件
文献标识码 B 文 章 编 号 1 3 0 5 1 0 3 — 7 1 9
Th a ia i n o iV w a t r m x e i ASP. e Re l t f d J Re d Da a fO E c ln z o Gr e NET
用ASP访问excel中的数据
用ASP访问excel中的数据1、建立一个链接文件名为conn。
<%db="D:\标件.xlsx" '用的是数据实际路径哈’set conn =server.CreateObject("adodb.connection")connStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source='" & db + "';Extended Properties='Excel 12.0;HDR=YES;IMEX=1';"conn.open connstr ’打开excel%>2、查询excel表格中的内容。
<%sqlstr="select * from [标件2010年$] order by 序列desc" ‘查询语句set rs =server.CreateObject("adodb.recordset")rs.open sqlstr,conn,0,1rs.movefirstdo while not rs.eof %><tr><td width='50' height='20'><%response.write(rs("序列"))%></td><td width='70' height='20'><%response.write(rs("标准"))%></td><td width='100' height='20'><%response.write(rs("名称"))%></td><td width='60' height='20'><%response.write(rs("材质"))%></td><td width='120' height='20'><%response.write(rs("规格型号"))%></td><td width="60" height="20"><%response.write(rs("单位"))%></td><td width="120" height="20"><%response.write(rs("入库数量"))%></td><td width="50" height="20"><%response.write(rs("入库时间"))%></td><td width="80" height="20"><%response.write(rs("出库数量"))%></td><td width="80" height="20"><%response.write(rs("出库时间"))%></td><td width="80" height="20"><%response.write(rs("领用人"))%></td><td width="70" height="20"><%response.write(rs("合同号"))%></td><td width="80" height="20"><%response.write(rs("库存数量"))%></td><td width="60" height="20"><%response.write(rs("备注"))%></td></tr><%rs.movenextloopresponse.Write"</table>"conn.close%>。
asp.net生成Excel并导出下载五种实现方法
⽣成Excel并导出下载五种实现⽅法通过GridView(简评:⽅法⽐较简单,但是只适合⽣成格式简单的Excel,且⽆法保留VBA代码),页⾯⽆刷新aspx.cs部分复制代码代码如下:using System; using System.Collections; using System.Configuration; using System.Data; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.HtmlControls; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Text; public partial class DataPage_NationDataShow : System.Web.UI.Page { private Data_Link link = new Data_Link(); private string sql; protected void Page_Load(object sender, EventArgs e) { Ajax.Utility.RegisterTypeForAjax(typeof(DataPage_NationDataShow)); } protected void btnExcel_Click(object sender, EventArgs e) { string strExcelName = "MyExcel"; strExcelName = strExcelName.Replace(@"/", ""); Data_Link link = new Data_Link(); string strSQL = this.hidParam.Value; DataSet ds = new DataSet(); ds = link.D_DataSet_Return(strSQL);//获得想要放⼊Excel的数据 gvExcel.Visible = true; gvExcel.DataSource = null; gvExcel.DataMember = ds.Tables[0].TableName; gvExcel.DataSource = ds.Tables[0]; gvExcel.DataBind(); ExportToExcel(this.Page, gvExcel, strExcelName); } protected void gvExcel_RowDataBound(object sender, GridViewRowEventArgs e) { } public override void VerifyRenderingInServerForm(Control control) { } /// <summary> /// ⼯具⽅法,Excel出⼒(解决乱码问题) /// </summary> ///<param name="page">调⽤页⾯</param> /// <param name="excel">Excel数据</param> /// <param name="fileName">⽂件名</param> public void ExportToExcel(System.Web.UI.Page page, GridView excel, string fileName) { try { foreach (GridViewRow row in excel.Rows) { for (int i = 0; i < row.Cells.Count; i++) { excel.HeaderRow.Cells[i].BackColor = System.Drawing.Color.Yellow; } } excel.Font.Size = 10; excel.AlternatingRowStyle.BackColor =System.Drawing.Color.LightCyan; excel.RowStyle.Height = 25; page.Response.AppendHeader("Content-Disposition", "attachment;filename=" + fileName); page.Response.Charset = "utf-8"; page.Response.ContentType = "application/vnd.ms-excel"; page.Response.Write("<meta http-equiv=Content-Type content=text/html;charset=utf-8>");excel.Page.EnableViewState = false; excel.Visible = true; excel.HeaderStyle.Reset(); excel.AlternatingRowStyle.Reset(); System.IO.StringWriter oStringWriter = new System.IO.StringWriter(); System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter); excel.RenderControl(oHtmlTextWriter);page.Response.Write(oStringWriter.ToString()); page.Response.End(); excel.DataSource = null; excel.Visible = false; } catch (Exception e) { } } }aspx部分复制代码代码如下:<head runat="server"> <script type="text/javascript"> //Excel DownLoad function excelExport(){ var hidText = document.getElementById("hidParam"); hidText.value = "some params"; document.getElementById("ExcelOutput").click(); } </script> </head> <body onload="pageInit()"> <form id="form1"runat="server"> <input type="button" value="EXCEL下载" style="width:100px;" onclick="excelExport()" id="excelBut" /><input id="hidParam" type="text" runat="server" style="display:none;"/> <asp:Button runat="server" ID="ExcelOutput"style="display:none" Text= "EXCEL出⼒" Width="0px" onclick="btnExcel_Click" UseSubmitBehavior="false"/><asp:GridView ID="gvExcel" runat="server" Height="95px" OnRowDataBound="gvExcel_RowDataBound" Visible="False"> </asp:GridView> </form> </body>在刚才的aspx.cs代码中复制代码代码如下:foreach (GridViewRow row in excel.Rows) { for (int i = 0; i < row.Cells.Count; i++) { excel.HeaderRow.Cells[i].BackColor = System.Drawing.Color.Yellow; } }这部分是给表头添加样式。
ASP导出Excel数据的四种方法
ASP导出Excel数据的四种方法一、使用OWC什么是OWC?OWC是Office Web Compent的缩写,即Microsoft的Office Web组件,它为在Web中绘制图形提供了灵活的同时也是最基本的机制。
在一个intranet环境中,如果可以假设客户机上存在特定的浏览器和一些功能强大的软件(如IE5和Office 2000),那么就有能力利用Office Web组件提供一个交互式图形开发环境。
这种模式下,客户端工作站将在整个任务中分担很大的比重。
<%Option ExplicitClass ExcelGenPrivate objSpreadsheetPrivate iColOffsetPrivate iRowOffsetSub Class_Initialize()Set objSpreadsheet = Server.CreateObject("OWC.Spreadsheet")iRowOffset = 2iColOffset = 2End SubSub Class_Terminate()Set objSpreadsheet = Nothing "Clean up End SubPublic Property Let ColumnOffset(iColOff) If iColOff > 0 theniColOffset = iColOffElseiColOffset = 2End IfEnd PropertyPublic Property Let RowOffset(iRowOff) If iRowOff > 0 theniRowOffset = iRowOffElseiRowOffset = 2End IfEnd Property Sub GenerateWorksheet(objRS)"Populates the Excel worksheet based on a Recordset"s contents"Start by displaying the titlesIf objRS.EOF then Exit SubDim objField, iCol, iRowiCol = iColOffsetiRow = iRowOffsetFor Each objField in objRS.FieldsobjSpreadsheet.Cells(iRow, iCol).Value = /doc/71b0b63383c4bb4cf7ecd11a.htmlobjSpreadsheet.Columns(iCol).AutoFitColumns"设置Excel表里的字体objSpreadsheet.Cells(iRow, iCol).Font.Bold = True objSpreadsheet.Cells(iRow, iCol).Font.Italic = False objSpreadsheet.Cells(iRow, iCol).Font.Size = 10 objSpreadsheet.Cells(iRow, iCol).Halignment = 2 "居中iCol = iCol + 1Next "objField"Display all of the dataDo While Not objRS.EOFiRow = iRow + 1iCol = iColOffsetFor Each objField in objRS.FieldsIf IsNull(objField.Value) thenobjSpreadsheet.Cells(iRow, iCol).Value = ""ElseobjSpreadsheet.Cells(iRow, iCol).Value = objField.Value objSpreadsheet.Columns(iCol).AutoFitColumns objSpreadsheet.Cells(iRow, iCol).Font.Bold = False objSpreadsheet.Cells(iRow, iCol).Font.Italic = False objSpreadsheet.Cells(iRow, iCol).Font.Size = 10End IfiCol = iCol + 1Next "objFieldobjRS.MoveNextLoopEnd Sub Function SaveWorksheet(strFileName)"Save the worksheet to a specified filenameOn Error Resume NextCall objSpreadsheet.ActiveSheet.Export(strFileName, 0)SaveWorksheet = (Err.Number = 0)End FunctionEnd ClassDim objRSSet objRS = Server.CreateObject("ADODB.Recordset")objRS.Open "SELECT * FROM xxxx", "Provider=SQLOLEDB.1;Persist SecurityInfo=True;User ID=xxxx;Password=xxxx;Initial Catalog=xxxx;Data source=xxxx;"Dim SaveNameSaveName = Request.Cookies("savename")("name")Dim objExcelDim ExcelPathExcelPath = "Excel\" & SaveName & ".xls"Set objExcel = New ExcelGenobjExcel.RowOffset = 1objExcel.ColumnOffset = 1objExcel.GenerateWorksheet(objRS)If objExcel.SaveWorksheet(Server.MapPath(ExcelPath)) then "Response.Write "已保存为Excel文件.下载"ElseResponse.Write "在保存过程中有错误!"End IfSet objExcel = NothingobjRS.CloseSet objRS = Nothing%>二、用Excel的Application组件在客户端导出到Excel或Word 注意:两个函数中的“data“是网页中要导出的table的 id导出到Excel代码导出到Word代码三、直接在IE中打开,再存为EXCEL文件把读出的数据用格式,在网页中显示出来,同时,加上下一句即可把EXCEL表在客客户端显示。
ASP导入Excel表格
201412261323_ASP导入Excel表格导入EXCEL表格常用于批处理数据或者数据迁移项目。
导入代码如下:<!--#include file="conn.asp" --><%Set ConnExcel=Server.CreateObject("ADODB.Connection")'--利用Open 方法打开数据库StrExcelConn="Driver={Microsoft Excel Driver (*.xls)};"&"DriverId=790; DBQ="&Server.MapPath("card.xls") 'EXCEL文件路径ConnExcel.Open StrExcelConn'--建立数据集对象Rs并查询数据Set Rs = Server.CreateObject("ADODB.Recordset")Sql="select * from [default$]" '特别注意EXCEL表名要一致rs.Open Sql,ConnExcel,1,1do while not rs.eofrsx=server.createobject("adodb.recordset")setsqlx="select * from pcard"sqlx,conn,1,3rsx.openrsx.addnewrsx("cardnum")=rs(0)rsx("cardpwd")=rs(1)rsx("cardpay")=cint(rs(2))rsx.updatersx.closersx=nothingsetrs.MoveNextlooprs.closeset rs=nothingConnExcel.closeset ConnExcel=nothingCall Closeconn()response.write "<script language=JavaScript>"response.Write "alert('导入成功!'); "response.Write "</script>"Response.end()%>人生最精彩的不是实现梦想的瞬间,而是坚持梦想的过程。
ASP 读取表单传递的数据
ASP 读取表单传递的数据Form集合可以获取用POST方法从浏览器传送来的值,这些值由Form表单提交。
通过设置Method="POST",所有作为请求提交的<FORM>标签中值的集合,每个成员均为只读。
语法格式:Request.Form(Element)[(Index)|.Count]在该语法中,包含有两个参数,其中element参数是指定集合要检索的表格元素的名称。
而index参数为可选参数,使用该参数可以访问某参数中多个值中的一个。
它可以是1到Request.Form(parameter).Count之间的任意整数。
Form集合按请求正文中参数的名称来索引。
Request.Form(element)的值是请求正文中所有element值的数组。
通过调用Request.Form(element).Count来确定参数中值的个数。
如果参数未关联多个值,则计数为1。
如果找不到参数,计数为0。
要引用有多个值的表格元素中的单个值,必须指定index值。
index参数可以是从1到Request.Form(element).Count中的任意数字。
如果引用多个表格参数中的一个,而未指定index值,返回的数据将是以逗号分隔的字符串。
在使用Request.Form参数时,Web服务器将分析HTTP请求正文并返回指定的数据。
如果应用程序需要未分析的表格数据,可以通过调用不带参数的Request.Form 访问该数据。
下面通过一个实例的表单内容,提交到另外一个ASP页面,并通过Request.Form 集合来获取表单中的内容。
所示。
图4-3 表单内容通过在表单中设置需要选项内容,并将表单内容提交到color.asp页面。
而在该页面中,主要通过Request.form集合,来获取表单信息。
通过执行上述内容,将显示表单所提交的表单信息,如图4-4所示。
图4-4 显示表单内容。
NET读取Excel文件的方法
NET读取Excel文件的方法如何使得读取Excel文件更加高效呢,下面小编就来告诉你三种.NET读取Excel文件的方法。
读取Excel文件方法一:采用OleDB读取Excel文件:把Excel文件当做一个数据源来进行数据的读取操作,实例如下:public DataSet ExcelToDS(string Path){string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" +"Data Source="+ Path +";"+"Extended Properties=Excel 8.0;";OleDbConnection conn = new OleDbConnection(strConn);conn.Open();string strExcel = "";OleDbDataAdapter myCommand = null;DataSet ds = null;strExcel="select * from [sheet1$]";myCommand = new OleDbDataAdapter(strExcel, strConn);ds = new DataSet(); myCommand.Fill(ds,"table1");return ds;}对于Excel中的表即sheet([sheet1$])如果不是固定的可以使用下面的方法得到代码如下:string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" +"Data Source="+ Path +";"+"Extended Properties=Excel 8.0;";OleDbConnection conn = new OleDbConnection(strConn);DataTable schemaTable = objConn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSche maGuid.Tables,null);string tableName=schemaTable.Rows[0][2].ToString().Trim();另外:也可进行写入Excel文件,实例如下:代码如下:public void DSToExcel(string Path,DataSet oldds) {//先得到汇总Excel的DataSet 主要目的是获得Excel在DataSet 中的结构string strCon = " Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source ="+path1+";Extended Properties=Excel 8.0" ;OleDbConnection myConn = new OleDbConnection(strCon) ;string strCom="select * from [Sheet1$]";myConn.Open ( ) ;OleDbDataAdapter myCommand = new OleDbDataAdapter ( strCom, myConn ) ;ystem.Data.OleDb.OleDbCommandBuilder builder=new OleDbCommandBuilder(myCommand);//QuotePrefix和QuoteSuffix主要是对builder生成InsertComment命令时使用。
ASP.NETCore中使用EPPlus导入出Excel文件的完整步骤
Core中使⽤EPPlus导⼊出Excel⽂件的完整步骤前⾔这篇⽂章说明了如何使⽤EPPlus在 Core中导⼊和导出.xls/.xlsx⽂件(Excel)。
在考虑使⽤.NET处理excel时,我们总是寻找第三⽅库或组件。
使⽤Open Office Xml格式(xlsx)读取和写⼊Excel 2007/2010⽂件的最流⾏的.net库之⼀是。
这个库现在已经⽀持.NET Core许久了。
这适⽤于Windows,Linux和Mac。
因此,让我们创建⼀个新的 Core WEB API应⽤程序并安装EPPlus.Core。
要安装EPPlus.Core,请在程序包管理器控制台中运⾏以下命令:PM->Install-Package EPPlus.Core或者您可以通过UI界⾯来安装它.⼀切就绪,现在创建⼀个控制器,命名为: ImportExportController ,添加后,让我们编写导出⽅法。
为了⽅便演⽰,我在wwwroot⽂件夹中创建了⼀个excel⽂件,所以我们就需要去获取我们的项⽬的绝对路径。
public class ImportExportController : ControllerBase{private readonly IHostingEnvironment _hostingEnvironment;public ImportExportController(IHostingEnvironment hostingEnvironment){_hostingEnvironment = hostingEnvironment;}}ExcelPackage 在 OfficeOpenXml 命名空间中可⽤的类将⽤于读写xlsx。
定义名为“Export”的新Web api操作⽅法,该⽅法返回⽣成的xlsx⽂件的URL。
所以这是将数据导出到xlsx的完整代码。
其中您需要 using OfficeOpenXml;[HttpGet]public string Export(){string sWebRootFolder = _hostingEnvironment.WebRootPath;string sFileName = @"demo.xlsx";string URL = string.Format("{0}://{1}/{2}", Request.Scheme, Request.Host, sFileName);FileInfo file = new FileInfo(bine(sWebRootFolder, sFileName));if (file.Exists){file.Delete();file = new FileInfo(bine(sWebRootFolder, sFileName));}using (ExcelPackage package = new ExcelPackage(file)){// add a new worksheet to the empty workbookExcelWorksheet worksheet = package.Workbook.Worksheets.Add("Employee");//First add the headersworksheet.Cells[1, 1].Value = "ID";worksheet.Cells[1, 2].Value = "Name";worksheet.Cells[1, 3].Value = "Gender";worksheet.Cells[1, 4].Value = "Salary (in $)";//Add valuesworksheet.Cells["A2"].Value = 1000;worksheet.Cells["B2"].Value = "Jon";worksheet.Cells["C2"].Value = "M";worksheet.Cells["D2"].Value = 5000;worksheet.Cells["A3"].Value = 1001;worksheet.Cells["B3"].Value = "Graham";worksheet.Cells["C3"].Value = "M";worksheet.Cells["D3"].Value = 10000;worksheet.Cells["A4"].Value = 1002;worksheet.Cells["B4"].Value = "Jenny";worksheet.Cells["C4"].Value = "F";worksheet.Cells["D4"].Value = 5000;package.Save(); //Save the workbook.}return URL;}就这样。
php读取excel内容
php读取excel内容PHP读取Excel内容。
在Web开发中,经常会遇到需要读取Excel文件并处理其中数据的情况。
而PHP作为一种广泛应用于Web开发的编程语言,具有强大的文件处理能力,因此也可以很方便地实现对Excel文件的读取操作。
本文将介绍如何使用PHP读取Excel文件中的内容,并对读取到的数据进行处理。
首先,我们需要使用PHPExcel这个PHP库来实现对Excel文件的读取操作。
PHPExcel是一个功能强大的PHP类库,可以用来读取、写入和操作Excel文件。
我们可以通过Composer来安装PHPExcel,或者直接下载PHPExcel的源代码并引入到项目中。
接下来,我们需要创建一个PHP文件,并在其中引入PHPExcel 库。
然后,我们可以使用PHPExcel提供的类和方法来读取Excel文件中的内容。
首先,我们需要实例化一个PHPExcel对象,并加载要读取的Excel文件:```php。
require 'PHPExcel/Classes/PHPExcel.php';$excelFile = 'example.xlsx';$excelReader =PHPExcel_IOFactory::createReaderForFile($excelFile);$excelObj = $excelReader->load($excelFile);```。
在上面的代码中,我们首先引入了PHPExcel库,并指定了要读取的Excel文件example.xlsx。
然后,我们使用PHPExcel_IOFactory类的createReaderForFile方法来创建一个Excel文件读取器,并使用load方法加载Excel文件,得到一个PHPExcel对象$excelObj。
接下来,我们可以通过PHPExcel对象来获取Excel文件中的数据。
例如,我们可以获取Excel文件中的第一个工作表,并遍历其中的每一行数据:```php。
asp.net实现Excel数据批量导入Web系统数据库word精品文档6页
asp实现Excel数据批量导入Web系统数据库【摘〓要】本文以学生信息管理系统中导入成绩表为例,介绍了利用asp将Excel数据批量导入到Web系统的sql数据库的实现过程。
目前,基于Web的信息管理系统,有的涉及到大量数据录入的问题,如学生信息管理系统,有学籍表、各班成绩表等信息,这些数据都已经存在Excel表中,如果能直接导入是最好的解决办法,就能避免了人工录入过程中的工作量大、效率低、容易出错等问题,其实Asp动态网页开发技术就能解决这一问题。
一般学籍表的格式和数据库的库结构的设计基本是一样的,Excel的表头和数据库的字段能够一一对应,但成绩表就不一样了,由于全校班级不同,所上的课程不同,在数据库设计时就不能和Excel 成绩表相同,下面我就以导入成绩表为例来说明如何实现将Excel数据批量导入到Web系统的Sql数据库中。
1、数据结构设计Excel成绩表结构如下:Sql数据库成绩表t_scores结构设计如下:由于学号是唯一的,所以不用设置姓名、班级、系部等字段,根据学号在学籍表中都能查到,避免了数据冗余。
通过上述表结构可以看出,需要把Excel表的不同的课程名作为Sql数据库成绩表中的一条记录中的一个内容导入,即一门课程占一条记录,以下来说明具体实现过程。
2、导入成绩界面设计导入数据必须把数据文件上传,上传所用控件为FileUpload,用来浏览上传文件,然后再用一个Button按钮控件,负责执行导入成绩这一过程,当点击“导入成绩”按钮时,系统自动执行Button1_Click事件程序。
再设计几个Label控件用来显示提示信息。
HTML代码如下:3、导入Excel数据程序分析3.1、添加引用为了能够上传、连接、读取Excel文件,要引入System.IO、System.Data、System.Data.OleDb命名空间,若要对SQL Server数据库操作,必须引入System.Data.Sql、System.Data.SqlClient命名空间。
asp实现excel中的数据导入数据库
asp实现excel中的数据导⼊数据库asp实现excel中的数据导⼊数据库<% Response.CodePage=65001%><% Response.Charset="UTF-8" %><%wenjian = request.Form("select")'获取⽂件扩展名ext = FileExec(wenjian)'判断⽂件扩展名if ext <> "xls" thenresponse.Write("<script>alert('⽂件类型不对,请核实!');window.location.href='index.html';</script>")response.End()end ifDim objConn,objRSDim strConn,strSqlset objConn=Server.CreateObject("ADODB.Connection")set objRS=Server.CreateObject("ADODB.Recordset")excelFile = server.mappath(wenjian)'针对excel 2007strConn = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" & excelFile & ";" & "Extended Properties=Excel 8.0;"objConn.Open strConnstrSql="SELECT * FROM [Sheet1$]"objRS.Open strSql,objConn,1,1objRS.MoveFirst%><!--#include file="conn.asp"--><%'循环excel中所有记录while not objRS.eofset rs = Server.CreateObject("Adodb.Recordset")'查询语句sql_s = "select * from ceshi where lname='" & objRS(0) & "' and old='" & objRS(1) & "' and sex='" & objRS(2) & "' and guojia='" & objRS(3) & "' and QQ='" & objRS(4) & "'" rs.open sql_s, conn, 1, 1'重复的数据不做录⼊操作if rs.eof then'插⼊语句'****excel中第⼀条不会被录⼊****sql = "insert into ceshi (lname, old, sex, guojia, QQ)values ('" & objRS(0) & "', '" & objRS(1) & "', '" & objRS(2) & "', '" & objRS(3) & "', '" & objRS(4) & "')"'执⾏插⼊conn.execute(sql)end ifobjRS.MoveNextrs.closeset rs = nothingwend'⼜到了各种关闭的时候conn.closeset conn = nothingobjRS.CloseobjConn.Closeset objRS = Nothingset objConn = Nothingresponse.Write("<script>alert('导⼊成功');window.location.href='index.html';</script>")response.End()Function FileExec(fileName)FileExec = Mid(fileName,Instr(fileName,".")+1,Len(fileName)-Instr(fileName,"."))End Function%>再分享⼀个简化版的代码wenjian=request.Form("floor")fileext=mid(wenjian,InStrRev(wenjian,".")+1)if lcase(fileext)<>"xls" thenresponse.write "<script>alert ('⽂件格式不对,请上传Excel⽂件');window.location.href='updateFloor.asp';</script>"response.endend ifset conne=server.CreateObject("ADODB.Connection")connStre="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath( ""&wenjian&"" )&";Extended Properties='Excel 8.0;HDR=YES;IMEX=1';"conne.open connStreSqle="select * from [sheet1$] "Set rse = Server.CreateObject("ADODB.Recordset")rse.open sqle,conne,1,1'验证hang=2do while not rse.eof'名称不能为空if trim(rse(0))<>"" thenelsemess="第"& hang &"⾏名称为空,请检查!"response.Write"<script>alert('"& mess &"').window.location.href='updateFloor.asp'</script>"response.End()end ifrse.movenexthang=hang+1looprse.movefirstdo while not rse.eofset rst=server.CreateObject("adodb.recordset")sqlt="select * from Sellman"rst.open sqlt,conn,1,3rst.addnew()rst("CompanyName")=c2(rse(0))rst("CompanyInfo")=c2(rse(1))rst("address")=c2(rse(2))rst("tel")=c2(rse(3))&" "&c2(rse(7))rst("Fax")=c2(rse(4))rst("linkman")=c2(rse(5))rst("Homepage")=c2(rse(8))rst("Email")=c2(rse(6))rst.update()rst.closeset rst=nothingrse.movenextlooprse.closeset rse=nothingresponse.Write "<script>alert('导⼊成功!');location.href='updateFloor.asp';</script>"其实简单的说象access 数据库⼀样,把excel⽂件打开,再进⾏读再写到access中你要写到sqlserver中就把写的过程改⼀下就成了看下代码:dim conndim conn2set conn=CreateObject("ADODB.Connection")conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Database Password=;Data Source=c:\book1.mdb"set conn2=CreateObject("ADODB.Connection")conn2.Open "Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Database Password=;Extended properties=Excel 5.0;Data Source=c:\book1.xls"sql = "SELECT * FROM [Sheet1$]"set rs = conn2.execute(sql)while not rs.eofsql = "insert into xxx([a],[b],[c],[d]) values('"& fixsql(rs(0)) &"','"& fixsql(rs(1)) &"','"& fixsql(rs(2)) &"','"& fixsql(rs(3)) &"')"conn.execute(sql)rs.movenextwendconn.closeset conn = nothingconn2.closeset conn2 = nothingfunction fixsql(str)dim newstrnewstr = strif isnull(newstr) thennewstr = ""elsenewstr = replace(newstr,"'","''")end iffixsql = newstrend function。
ASP 读取Excel文件
ASP 读取Excel文件我们都知道,在做网站的时候,有时需要把Excel的数据作为数据库的数据来使用,那么我们怎么才能在ASP的环境中读取Excel的文件呢?本练习就着重讲解ASP读取Excel文件。
首先介绍了操作Excel的基础内容,接下来讲解了一个实例,最后对使用时的注意事件进行了介绍。
1.ASP对Excel的基本操作(1)创建Excel对象可以通过下面的代码来实现:(6)退出Excel操作可以通过以下代码来实现:2.读取Excel文件的实例(1)首先我们先建立一个Excel的文件夹,本案例所有用的文件均在该文件夹下。
在该文件夹下用Office 2003的Excel创建一个名为Mark.xls文件,需要注意的是,第一行我们作为数据的标题部份。
Excel表格结构如图7-11。
图7-11 Excel表结构(2)在该目录下建立一个名为Test.ASP文件,程序源码如下所示:(3)在IE7.0浏览器中,地址栏内输入“http://localhost/test.asp”,程序运行结果如图7-12所示:图7-12 读取Excel 文件结果3.两种常见的错误出现此错误为打开Excel 表时,工作表的名称错误,正确的名称应该在表名的后面加上一个“$”符号。
例:“rs.open "select *from [Sheet1$]",conn,1,3”表名是“[Sheet1$]”而不是“[Sheet1]”。
格式必须为标准的二维Excel 表。
如果格式正确,则为程序的版本不匹配。
如果用Office 2007的Excel 生成.xls 文件,则程序将会报错:外部表不是预期的格式。
而用Office 2003的Excel 生成.xls 文件,程序则可以正常使用。
ASP连接excel的方法
asp连接Excel的方法一、asp连接Excel的方法与代码:<%dim connxls,connstrxlsconnstrxls="DBQ=d:\newexcel.xls;DefaultDir=;DRIVER={Microsoft Excel Driver (*.xls)};"Set connxls=Server.CreateObject("ADODB.Connection")connxls.Open connstrxlsSet rsxls=Server.CreateObject("ADODB.Recordset")SQLxls = "select * from [new$]"%>注意:写法和连接ACCESS基本相同,不同的是,在调用工作表的时候,不能直接用表名,工作表名后要加$,而且要用“[]”括起来。
二、asp操作Excel的总结:1、建立Excel对象setobjExcelApp=CreateObject("Excel.Application")objExcelApp.DisplayAlerts=false不显示警告objExcelApp.Application.Visible=false不显示界面2、新建Excel文件objExcelApp.WorkBooks.addsetobjExcelBook=objExcelApp.ActiveWorkBooksetobjExcelSheets=objExcelBook.WorksheetssetobjExcelSheet=objExcelBook.Sheets(1)3、读取已有Excel文件strAddr=Server.MapPath(".")objExcelApp.WorkBooks.Open(strAddr&"\Templet\Table.xls")Set objExcelBook=objExcelApp.ActiveWorkBookSet objExcelSheets=objExcelBook.WorksheetsSet objExcelSheet=objExcelBook.Sheets(1)4、另存Excel文件objExcelBook.SaveAsstrAddr&"\Temp\Table.xls"5、保存Excel文件objExcelBook.Save(笔者测试时保存成功,页面报错。
在ASP网页中访问Excel文件
在ASP网页中访问Excel文件在ASP网页中访问Excel文件Excel文件可以作为活动文档(ActiveX Document)在活动文档容器(ActiveX Document Container)中打开,而IE就是一个活动文档容器,所以当页面中的链接指向一个Excel文件时,单击此链接即可启动Excel,最终将文件显示在IE窗口中。
这种方法虽然简单,但存在不少缺陷:客户机内必须安装Excel。
在企业内部网上还有可能做到,但Internet上就不现实了。
访问文档时将启动Excel,速度较慢。
若览器不是IE,则可能不是活动文档容器,因此将不能正确显示文件。
下面介绍一种在ASP文件中通过ADO访问Excel文件的方法。
----ADO是微软发布的基于OLEDB技术的数据库编程接口,通过ODBC驱动程序可以访问多种不同格式的数据文件,其中包括Excel文件。
要获得Excel的ODBC驱动程序,可以通过安装Office97,也可以去微软的站点下载。
正确安装后在控制面板中会出现ODBC数据源管理器,打开它确认在驱动程序页中有Excel的驱动程序。
然后编写Brow.ASP程序,如下例所示。
例中假设在同一目录下有Excel文件01.xls,且包含名为sheet1的工作表,工作表的第一行为列标题,以后为相应的数据。
Brow.asp:程序代码:<%Const adOpenStatic = 3Dim conn Dim rs ,dbPath Set conn = erver.CreateObject("ADODB.Connection") ‘ 生成实际路dbPath=server.MapPath("01.xls") ‘ 驱动程序名称必须与ODBC中的驱动程序名完全一致,包括空格conn.Open "driver={Microsoft Excel Driver (*.xls)};dbq=" & dbPath Set rs = Server.CreateObject("ADODB.Rec ordset") ‘ 在工作表后加上$,同时必须在工作表名外加括号rs.Open "[sheet1$]", conn, adOpenStatic% >< html >< head >< meta http-equiv="Content-Type" content="text/html; charset=gb_2312-80" >< meta name="GENERATOR" content="Microsoft FrontPage Express 2.0" >< title > 浏览Excel数据表< /title >< /head >< body bgcolor="#FFFFFF" >< h2 align="center" >Brow.asp - 浏览Excel数据表< /h2 >< hr >< %Response.Write "< CENTER >< TABLE BORDER=1 >"Response.Write "< TR BGCOLOR=#00FFFF >"Response.WRITE "< TD >编号< /TD >" ‘ 显示每列的标题For i=0 to rs.Fields.Count-1Response.WRITE "< TD >" & rs.Fields(i).Name & "< /TD >"NextResponse.Write "< /TR >" RecNo=1‘ 显示工作表中的所有数据Do While Not rs.EOFResponse.Write "< TR > "Response.Write "< TD >" & RecNo & "< /TD >"‘显示各列的数据For i=0 to rs.Fields.Count-1Response.WRITE "< TD >" & rs.Fields(i).Value & "< /TD >"NextResponse.Write "< /TR >"rs.MoveNext RecNo=RecNo+1 LoopResponse.Write "< /TABLE >< /CENTER >"% >< hr > < /body > < /html >ODBC 将指定的工作表的第一行各列的内容识别成字段名,以下各行作为相应的数据,若打开的工作表中数据将没有按此规律出现,则需要指定范围。
ASP.NET之Excel下载模板、导入、导出操作
之Excel下载模板、导⼊、导出操作本⽂介绍了下Excel下载模板、导⼊、导出操作,供⼤家参考,具体内容如下1.下载模板功能protected void btnDownload_Click(object sender, EventArgs e){var path = Server.MapPath(("upfiles\\") + "test.xlt"); //upfiles-⽂件夹 test.xlt-⽂件var name = "test.xlt";try{var file = new FileInfo(path);Response.Clear();Response.Charset = "GB2312";Response.ContentEncoding = System.Text.Encoding.UTF8;Response.AddHeader("Content-Disposition", "attachment; filename=" + Server.UrlEncode(name)); //头信息,指定默认⽂件名Response.AddHeader("Content-Length", file.Length.ToString());//显⽰下载进度Response.ContentType = "application/ms-excel"; // 指定返回的是⼀个不能被客户端读取的流,必须被下载Response.WriteFile(file.FullName); // 把⽂件流发送到客户端pleteRequest();}catch (Exception ex){Response.Write("<script>alert('错误:" + ex.Message + ",请尽快与管理员联系')</script>");}}2.导⼊数据Excel数据导⼊到数据库中。
.Net读取xlsx文件
.Net读取xlsx文件连接 Excel 表:stringsqlconnection="Provider=Microsoft.Jet.OleDb.4.0;Data Source=D:\\Book\\Book.xls;Extended Properties=Excel 8.0";(1)Excel 连接字符串:通过OleDb方式读取Excel文件时常常出现读取某些字段为null 值,其实是有值,原因是读取文件时,Excel通常会以前10行的数据类型为参考,如果后边的与其不一致,则会出现些问题。
可以通过修改Excel 文件的连接串,强制读取的数据为字符串类型。
string xlsConnFormat = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source='{0}';Extended Properties='Excel 8.0;HDR=NO;IMEX=1';";// 1、HDR表示要把第一行作为数据还是作为列名,作为数据用HDR=NO,作为列名用HDR=YES;// 2、通过IMEX=1来把混合型作为文本型读取,避免null值。
注意:把一个Excel 文件看做一个数据库,一个sheet看做一张表。
语法 "SELECT * FROM [sheet1$]",表单要使用"[]"和"$"默认Excel的表,列名是"F1 ~ F99"。
如果提示“找不到可安装的ISAM。
”错误,主要还是Connection字符串的问题,请注意Data Source之间是否空格,Extended Properties是否书写正确。
(2)、使用 OLEDB 读取不同版本 Excel 数据的连接字符串设置用OLEDB通过设置连接字符串可以像读取sqlserver一样将excel 中的数据读取出来,但是excel2003和excel2007/2010的连接字符串是不同的/// <summary>/// 把数据从Excel装载到DataTable/// </summary>/// <param name="pathName">带路径的Excel文件名</param>/// <param name="sheetName">工作表名</param>/// <param name="tbContainer">将数据存入的DataTable</param>/// <returns></returns>public DataTable ExcelToDataTable(string pathName, string sheetName){DataTable tbContainer = new DataTable();string strConn = string.Empty;if (string.IsNullOrEmpty(sheetName)){sheetName = "Sheet1";}FileInfo file = new FileInfo(pathName);if (!file.Exists){throw new Exception("文件不存在");}string extension = file.Extension;switch (extension){case ".xls":strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + pathName + ";Extended Properties='Excel 8.0;HDR=Yes;IMEX=1;'";break;case ".xlsx":strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + pathName + ";Extended Properties='Excel 12.0;HDR=Yes;IMEX=1;'";break;default:strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + pathName + ";Extended Properties='Excel 8.0;HDR=Yes;IMEX=1;'";break;}//链接ExcelOleDbConnection cnnxls = new OleDbConnection(strConn);//读取Excel里面有表Sheet1OleDbDataAdapter oda = new OleDbDataAdapter(string.Format("select * from [{0}$]", sheetName), cnnxls);DataSet ds = new DataSet();//将Excel里面有表内容装载到内存表中!oda.Fill(tbContainer);return tbContainer;}这里需要注意的地方是,当文件的后缀名为.xlsx(excel2007/2010)时的连接字符串是"Provider=Microsoft.ACE.OLEDB.12.0;....",注意中间红色部分不是"Jet"。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
如何打开Excel数据库文件,想必有很多朋友都不清楚吧,下面通过一个简单的例子,实现读取Excel数据文件
在CSDN中,经常有人问如何打开Excel数据库文件。
本文通过一个简单的例子,实现读取Excel数据文件。
首先,创建一个Web应用程序项目,在Web页中添加一个DataGrid控件、一个文件控件和一个按钮控件。
代码如下:
<INPUTid="File1"type="file"name="File1"runat="server">
<asp:Buttonid="Button1"runat="server"Text="Button"></asp:Button>
<asp:DataGridid="DataGrid1"runat="server"></asp:DataGrid>
在代码视图中首先导入OleDb命名空间:
usingSystem.Data.OleDb;
在按钮的单击事件中输入如下代码:
代码如下:
stringstrPath="c://test//"+DateTime.Now.ToString("yyyyMMddhhmmss")+".xls";
File1.PostedFile.SaveAs(strPath);
stringmystring="Provider=Microsoft.Jet.OLEDB.4.0;DataSource='"+strPath+"';ExtendedPropertie s=Excel8.0";
OleDbConnectioncnnxls=newOleDbConnection(mystring);
OleDbDataAdaptermyDa=newOleDbDataAdapter("select*from[Sheet1$]",cnnxls);
DataSetmyDs=newDataSet();
myDa.Fill(myDs);
DataGrid1.DataSource=myDs.Tables[0];
DataGrid1.DataBind();
其中C:/test对ASPNET用户要有读写的权限.
更多信息请查看IT技术专栏。