ASP实现Excel工作表和数据库的导入导出
- 格式:doc
- 大小:222.00 KB
- 文档页数:4
Core导⼊导出Excelxlsx⽂件实例 Core 使⽤EPPlus.Core导⼊导出Excel xlsx ⽂件,EPPlus.Core⽀持Excel 2007/2010 xlsx⽂件导⼊导出,可以运⾏在Windows, Linux和Mac。
EPPlus.Core 是基于EPPlus 更改⽽来,在Linux 下需要安装libgdiplus 。
下⾯在 Core 中导⼊导出Excel xlsx ⽂件。
新建项⽬新建⼀个 Core Web Application 项⽬ASPNETCoreExcel,选择Web 应⽤程序不进⾏⾝份验证。
然后添加EPPlus.Core 引⽤。
使⽤NuGet 命令⾏:Install-Package EPPlus.Core也可以使⽤NuGet包管理器安装。
导出xlsx⽂件新建⼀个XlsxController ,添加Export 操作。
public class XlsxController : Controller{private IHostingEnvironment _hostingEnvironment;public XlsxController(IHostingEnvironment hostingEnvironment){_hostingEnvironment = hostingEnvironment;}public IActionResult Index(){return View();}public IActionResult Export(){string sWebRootFolder = _hostingEnvironment.WebRootPath;string sFileName = $"{Guid.NewGuid()}.xlsx";FileInfo file = new FileInfo(bine(sWebRootFolder, sFileName));using (ExcelPackage package = new ExcelPackage(file)){// 添加worksheetExcelWorksheet worksheet = package.Workbook.Worksheets.Add("aspnetcore");//添加头worksheet.Cells[1, 1].Value = "ID";worksheet.Cells[1, 2].Value = "Name";worksheet.Cells[1, 3].Value = "Url";//添加值worksheet.Cells["A2"].Value = 1000;worksheet.Cells["B2"].Value = "LineZero";worksheet.Cells["C2"].Value = "/linezero/";worksheet.Cells["A3"].Value = 1001;worksheet.Cells["B3"].Value = "LineZero GitHub";worksheet.Cells["C3"].Value = "https:///linezero";worksheet.Cells["C3"].Style.Font.Bold = true;package.Save();}return File(sFileName, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");}}通过依赖注⼊获取HostingEnvironment,对应可以获取程序的相关⽬录及属性。
中使用npoi导出excel电子表格NPOI是一个开源的C#读写Excel、WORD等微软OLE2组件文档的项目,可以在没有安装Office的情况下对Word或Excel文档进行读写操作。
一、添加引用1、将NPOI.dll、Ioniz.Zip.dll复制到web/bin 文件夹中;2、在common公用工具层添加引用,浏览找到NPOI.dll;二、类库代码在common中建立类库NPOIExcel.csusing System;using System.Collections.Generic;using System.Linq;using System.Web;using NPOI;using NPOI.HPSF;using NPOI.HSSF;using erModel;using NPOI.POIFS;using NPOI.Util;using System.IO;using System.Data;using System.Data.SqlClient;public class DataTableRenderT oExcel{/// <summary>/// DataTable导出到Excel文件/// </summary>/// <param name="dtSource">源DataTable</param>/// <param name="strHeaderText">表头文本</param>/// <param name="strFileName">保存位置</param>public static void DataTableToExcel(DataTable dtSource, string strHeaderText, string strFileName){using (MemoryStream ms = DataTableToExcel(dtSource, strHeaderText)){using (FileStream fs = new FileStream(strFileName, FileMode.Create, FileAccess.Write)){byte[] data = ms.T oArray();fs.Write(data, 0, data.Length);fs.Flush();}}}/// <summary>/// DataTable导出到Excel的MemoryStream/// </summary>/// <param name="dtSource">源DataTable</param>/// <param name="strHeaderText">表头文本</param>public static MemoryStream DataTableToExcel(DataT able dtSource, string strHeaderText){HSSFWorkbook workbook = new HSSFWorkbook();HSSFSheet sheet = (HSSFSheet)workbook.CreateSheet();#region 右击文件属性信息{DocumentSummaryInformation dsi = PropertySetFactory.CreateDocumentSummaryInformation();pany = "NPOI";workbook.DocumentSummaryInformation = dsi;SummaryInformation si = PropertySetFactory.CreateSummaryInformation();si.Author = "文件作者信息"; //填加xls文件作者信息si.ApplicationName = "创建程序信息"; //填加xls文件创建程序信息stAuthor = "最后保存者信息"; //填加xls文件最后保存者信息ments = "作者信息"; //填加xls文件作者信息si.Title = "标题信息"; //填加xls文件标题信息si.Subject = "主题信息";//填加文件主题信息si.CreateDateTime = System.DateTime.Now;workbook.SummaryInformation = si;}#endregionHSSFCellStyle dateStyle = (HSSFCellStyle)workbook.CreateCellStyle();HSSFDataFormat format = (HSSFDataFormat)workbook.CreateDataFormat();dateStyle.DataFormat = format.GetFormat("yyyy-mm-dd");//取得列宽int[] arrColWidth = new int[dtSource.Columns.Count];foreach (DataColumn item in dtSource.Columns){arrColWidth[item.Ordinal] = System.Text.Encoding.GetEncoding(936).GetBytes(item.Column Name.T oString()).Length;}for (int i = 0; i < dtSource.Rows.Count; i++){for (int j = 0; j < dtSource.Columns.Count; j++){int intTemp = System.Text.Encoding.GetEncoding(936).GetBytes(dtSource.Row s[i][j].ToString()).Length;if (intTemp > arrColWidth[j]){arrColWidth[j] = intTemp;}}}int rowIndex = 0;foreach (DataRow row in dtSource.Rows){#region 新建表,填充表头,填充列头,样式if (rowIndex == 65535 || rowIndex == 0){if (rowIndex != 0){sheet = (HSSFSheet)workbook.CreateSheet();}#region 表头及样式{HSSFRow headerRow = (HSSFRow)sheet.CreateRow(0);headerRow.HeightInPoints = 25;headerRow.CreateCell(0).SetCellValue(strHeaderText);HSSFCellStyle headStyle = (HSSFCellStyle)workbook.CreateCellStyle();headStyle.Alignment = erModel.HorizontalAlignment.LEFT; //左对齐HSSFFont font = (HSSFFont)workbook.CreateFont();font.FontHeightInPoints = 20;font.Boldweight = 700;headStyle.SetFont(font);headerRow.GetCell(0).CellStyle = headStyle;// sheet.AddMergedRegion(new Region(0, 0, 0, dtSource.Columns.Count - 1));//headerRow.Dispose();}#endregion#region 列头及样式{HSSFRow headerRow = (HSSFRow)sheet.CreateRow(1);HSSFCellStyle headStyle = (HSSFCellStyle)workbook.CreateCellStyle();//headStyle.Alignment = CellHorizontalAlignment.CENTER;HSSFFont font = (HSSFFont)workbook.CreateFont();font.FontHeightInPoints = 10;font.Boldweight = 700;headStyle.SetFont(font);foreach (DataColumn column in dtSource.Columns){headerRow.CreateCell(column.Ordinal).SetCellValue(column.ColumnName);headerRow.GetCell(column.Ordinal).CellStyle = headStyle;//设置列宽sheet.SetColumnWidth(column.Ordinal,(arrColWidth[column.Ordinal] + 1) * 256);}// headerRow.Dispose();}#endregionrowIndex = 2;}#endregion#region 填充内容HSSFRow dataRow = (HSSFRow)sheet.CreateRow(rowIndex);foreach (DataColumn column in dtSource.Columns){HSSFCell newCell = (HSSFCell)dataRow.CreateCell(column.Ordinal);string drValue = row[column].ToString();switch (column.DataType.ToString()){case "System.String"://字符串类型newCell.SetCellValue(drValue);break;case "System.DateTime"://日期类型System.DateTime dateV;System.DateTime.TryParse(drValue, out dateV);newCell.SetCellValue(dateV);newCell.CellStyle = dateStyle;//格式化显示break;case "System.Boolean"://布尔型bool boolV = false;bool.TryParse(drValue, out boolV); newCell.SetCellValue(boolV); break;case "System.Int16"://整型case "System.Int32":case "System.Int64":case "System.Byte":int intV = 0;int.TryParse(drValue, out intV); newCell.SetCellValue(intV); break;case "System.Decimal"://浮点型case "System.Double":double doubV = 0;double.TryParse(drValue, out doubV); newCell.SetCellValue(doubV); break;case "System.DBNull"://空值处理newCell.SetCellValue("");break;default:newCell.SetCellValue("");break;}}#endregionrowIndex++;}using (MemoryStream ms = new MemoryStream()){workbook.Write(ms);ms.Flush();ms.Position = 0;sheet.Dispose();//workbook.Dispose();//一般只用写这一个就OK了,他会遍历并释放所有资源,但当前版本有问题所以只释放sheetreturn ms;}}/// <summary>读取excel/// 默认第一行为标头/// </summary>/// <param name="strFileName">excel文档路径</param> /// <returns></returns>public static DataT able Import(string strFileName){DataTable dt = new DataTable();HSSFWorkbook hssfworkbook;using (FileStream file = new FileStream(strFileName, FileMode.Open, FileAccess.Read)){hssfworkbook = new HSSFWorkbook(file);}HSSFSheet sheet = (HSSFSheet)hssfworkbook.GetSheetAt(0);System.Collections.IEnumerator rows = sheet.GetRowEnumerator();HSSFRow headerRow = (HSSFRow)sheet.GetRow(0);int cellCount = stCellNum;for (int j = 0; j < cellCount; j++){HSSFCell cell = (HSSFCell)headerRow.GetCell(j);dt.Columns.Add(cell.ToString());}for (int i = (sheet.FirstRowNum + 1); i <= stRowNum; i++){HSSFRow row = (HSSFRow)sheet.GetRow(i);DataRow dataRow = dt.NewRow();for (int j = row.FirstCellNum; j < cellCount; j++){if (row.GetCell(j) != null)dataRow[j] = row.GetCell(j).ToString();}dt.Rows.Add(dataRow);}return dt;}//以上是新增的。
导出数据到EXCEL的方法总结在中导出数据到EXCEL里的方法很多,本文总结了常见的几种导出方式(由dataset生成,由datagrid生成,dataview ),供大家参考!1、由dataset生成public void CreateExcel(DataSet ds,string typeid,string FileName){HttpResponse resp;resp = Page.Response;resp.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");resp.AppendHeader("Content-Disposition", "attachment;filename=" + FileName);string colHeaders= "", ls_item="";int i=0;//定义表对象与行对像,同时用DataSet对其值进行初始化DataTable dt=ds.T ables[0];DataRow[] myRow=dt.Select("");// typeid=="1"时导出为EXCEL格式文件;typeid=="2"时导出为XML格式文件if(typeid=="1"){//取得数据表各列标题,各标题之间以\t分割,最后一个列标题后加回车符for(i=0;i colHeaders+=dt.Columns[i].Caption.ToString()+" \t";colHeaders +=dt.Columns[i].Caption.ToString() +"\n";//向HTTP输出流中写入取得的数据信息resp.Write(colHeaders);//逐行处理数据foreach(DataRow row in myRow){//在当前行中,逐列获得数据,数据之间以\t分割,结束时加回车符\nfor(i=0;i ls_item +=row[i].ToString() + "\t";ls_item += row[i].T oString() +"\n";//当前行数据写入HTTP输出流,并且置空ls_item以便下行数据resp.Write(ls_item);ls_item="";}}else{if(typeid=="2"){//从DataSet中直接导出XML数据并且写到HTTP输出流中resp.Write(ds.GetXml());}}//写缓冲区中的数据到HTTP头文件中resp.End();}2、由datagrid生成public void ToExcel(System.Web.UI.Control ctl){HttpContext.Current.Response.AppendHeader("Content-Disposition","attachment;filename=Excel.xls");HttpContext.Current.Response.Charset ="UTF-8";HttpContext.Current.Response.ContentEncoding=System.Text.Encoding.Default;HttpContext.Current.Response.ContentType ="application/ms-excel";//image/JPEG;text/HTML;image/GIF;vnd.ms-excel/mswordctl.Page.EnableViewState =false;System.IO.StringWriter tw = new System.IO.StringWriter() ;System.Web.UI.HtmlTextWriter hw = new System.Web.UI.HtmlTextWriter (tw);ctl.RenderControl(hw);HttpContext.Current.Response.Write(tw.ToString());HttpContext.Current.Response.End();}用法:ToExcel(datagrid1);3、这个用dataviewpublic void OutputExcel(DataView dv,string str){//// TODO: 在此处添加构造函数逻辑////dv为要输出到Excel的数据,str为标题名称GC.Collect();Application excel;// = new Application();int rowIndex=4;int colIndex=1;_Workbook xBk;_Worksheet xSt;excel= new ApplicationClass();xBk = excel.Workbooks.Add(true);xSt = (_Worksheet)xBk.ActiveSheet;////取得标题//foreach(DataColumn col in dv.Table.Columns){colIndex++;excel.Cells[4,colIndex] = col.ColumnName;xSt.get_Range(excel.Cells[4,colIndex],excel.Cells[4,colIndex]). HorizontalAlignment = XlVAlign.xlVAlignCenter;//设置标题格式为居中对齐}////取得表格中的数据//foreach(DataRowView row in dv){rowIndex ++;colIndex = 1;foreach(DataColumn col in dv.Table.Columns){colIndex ++;if(col.DataType == System.Type.GetType("System.DateTime")){excel.Cells[rowIndex,colIndex] = (Convert.ToDateTime(row[col.ColumnName].T oString())).ToString ("yyyy-MM-dd");xSt.get_Range(excel.Cells[rowIndex,colIndex],excel.Cells[row Index,colIndex]).HorizontalAlignment = XlVAlign.xlVAlignCenter;//设置日期型的字段格式为居中对齐}elseif(col.DataType == System.Type.GetType("System.String")) {excel.Cells[rowIndex,colIndex] = "'"+row[col.ColumnName].T oString();xSt.get_Range(excel.Cells[rowIndex,colIndex],excel.Cells[row Index,colIndex]).HorizontalAlignment = XlVAlign.xlVAlignCenter;//设置字符型的字段格式为居中对齐}else{excel.Cells[rowIndex,colIndex] = row[col.ColumnName].T oString();}}}////加载一个合计行//int rowSum = rowIndex + 1;int colSum = 2;excel.Cells[rowSum,2] = "合计";xSt.get_Range(excel.Cells[rowSum,2],excel.Cells[rowSum,2]). HorizontalAlignment = XlHAlign.xlHAlignCenter;////设置选中的部分的颜色//xSt.get_Range(excel.Cells[rowSum,colSum],excel.Cells[rowSu m,colIndex]).Select();xSt.get_Range(excel.Cells[rowSum,colSum],excel.Cells[rowSu m,colIndex]).Interior.ColorIndex = 19;//设置为浅黄色,共计有56种////取得整个报表的标题//excel.Cells[2,2] = str;////设置整个报表的标题格式//xSt.get_Range(excel.Cells[2,2],excel.Cells[2,2]).Font.Bold = true;xSt.get_Range(excel.Cells[2,2],excel.Cells[2,2]).Font.Size = 22;////设置报表表格为最适应宽度//xSt.get_Range(excel.Cells[4,2],excel.Cells[rowSum,colIndex]). Select();xSt.get_Range(excel.Cells[4,2],excel.Cells[rowSum,colIndex]). Columns.AutoFit();////设置整个报表的标题为跨列居中//xSt.get_Range(excel.Cells[2,2],excel.Cells[2,colIndex]).Select();xSt.get_Range(excel.Cells[2,2],excel.Cells[2,colIndex]).Horizo ntalAlignment = XlHAlign.xlHAlignCenterAcrossSelection;////绘制边框//xSt.get_Range(excel.Cells[4,2],excel.Cells[rowSum,colIndex]). Borders.LineStyle = 1;xSt.get_Range(excel.Cells[4,2],excel.Cells[rowSum,2]).Border s[XlBordersIndex.xlEdgeLeft].Weight = XlBorderWeight.xlThick;//设置左边线加粗xSt.get_Range(excel.Cells[4,2],excel.Cells[4,colIndex]).Border s[XlBordersIndex.xlEdgeTop].Weight = XlBorderWeight.xlThick;//设置上边线加粗xSt.get_Range(excel.Cells[4,colIndex],excel.Cells[rowSum,colI ndex]).Borders[XlBordersIndex.xlEdgeRight].Weight = XlBorderWeight.xlThick;//设置右边线加粗xSt.get_Range(excel.Cells[rowSum,2],excel.Cells[rowSum,colI ndex]).Borders[XlBordersIndex.xlEdgeBottom].Weight = XlBorderWeight.xlThick;//设置下边线加粗////显示效果//excel.Visible=true;//xSt.Export(Server.MapPath(".")+"\\"+this.xlfile.Text+".xls",S heetExportActionEnum.ssExportActionNone,Microsoft.Office.Int erop.OWC.SheetExportFormat.ssExportHTML );xBk.SaveCopyAs(Server.MapPath(".")+"\\"+this.xlfile.Text+". xls ");ds = null;xBk.Close(false, null,null);excel.Quit();System.Runtime.InteropServices.Marshal.ReleaseComObject (xBk);System.Runtime.InteropServices.Marshal.ReleaseComObject (excel);System.Runtime.InteropServices.Marshal.ReleaseComObject (xSt);xBk = null;excel = null;xSt = null;GC.Collect();string path = Server.MapPath(this.xlfile.Text+".xls");System.IO.FileInfo file = new System.IO.FileInfo(path);Response.Clear();Response.Charset="GB2312";Response.ContentEncoding=System.Text.Encoding.UTF8;// 添加头信息,为"文件下载/另存为"对话框指定默认文件名Response.AddHeader("Content-Disposition", "attachment; filename=" + Server.UrlEncode());// 添加头信息,指定文件大小,让浏览器能够显示下载进度Response.AddHeader("Content-Length",file.Length.T oString());// 指定返回的是一个不能被客户端读取的流,必须被下载Response.ContentType = "application/ms-excel";// 把文件流发送到客户端Response.WriteFile(file.FullName);// 停止页面的执行Response.End();}本文来自: IT知道网() 详细出处参考:/html/net/aspnet/20091028/6722.html。
Core实现Excel导出功能的实现⽅法⽬录安装 ClosedXML将数据导出成 CSV ⽂件将数据导出成 XLSX ⽂件下载 Excel在web应⽤程序开发时,或许你会遇到这样的需求,如何在 Core 中实现 excel 或者 word 的导⼊导出,在 NuGet 上有⼤量的⼯具包可以实现这样的功能,本篇就讨论下如何使⽤ ClosedXML 实现 Excel 数据导出。
安装 ClosedXML如果想实现 Excel 的导出功能,在 Core 中有很多的dll可以做到,其中的⼀个叫做 ClosedXML,你可以通过可视化界⾯ NuGet package manager 去安装,也可以使⽤命令⾏ NuGet package manager console 执⾏下⾯命令。
Install-Package ClosedXML将数据导出成 CSV ⽂件将数据导成 CSV ⽂件是⾮常简单的,毕竟每⾏数据都是⽤ , 隔开即可,可以⽤ NuGet 上的 CsvExport 或者AWright18.SimpleCSVExporter 去实现,当然你觉得⾃⼰很 ,可以亲⾃操⼑实现,下⾯我准备亲⾃实现⼀下,先看下⾯定义的 Author 类。
public class Author{public int Id { get; set; }public string FirstName { get; set; }public string LastName { get; set; }}然后塞⼀些数据到 authors 列表中,如下代码所⽰:List<Author> authors = new List<Author>{new Author { Id = 1, FirstName = "Joydip", LastName = "Kanjilal" },new Author { Id = 2, FirstName = "Steve", LastName = "Smith" },new Author { Id = 3, FirstName = "Anand", LastName = "Narayaswamy"}};定义⼀个 DownloadCommaSeperatedFile ⽅法,⽤于实现 Action 的 csv 导出功能。
使⽤GridView导出Excel实现⽅法本⽂实例讲述了使⽤GridView导出Excel实现⽅法。
分享给⼤家供⼤家参考。
具体实现⽅法如下:复制代码代码如下:/// <summary>/// 将DataTable数据导出到EXCEL,调⽤该⽅法后⾃动返回可下载的⽂件流/// </summary>/// <param name="dtData">要导出的数据源</param>public static void DataTable1Excel(System.Data.DataTable dtData){System.Web.UI.WebControls.GridView gvExport = null;// 当前对话System.Web.HttpContext curContext = System.Web.HttpContext.Current;// IO⽤于导出并返回excel⽂件System.IO.StringWriter strWriter = null;System.Web.UI.HtmlTextWriter htmlWriter = null;if (dtData != null){// 设置编码和附件格式curContext.Response.ContentType = "application/vnd.ms-excel";curContext.Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312");curContext.Response.Charset = "utf-8";// 导出excel⽂件strWriter = new System.IO.StringWriter();htmlWriter = new System.Web.UI.HtmlTextWriter(strWriter);// 为了解决gvData中可能进⾏了分页的情况,需要重新定义⼀个⽆分页的GridViewgvExport = new System.Web.UI.WebControls.GridView();gvExport.DataSource = dtData.DefaultView;gvExport.AllowPaging = false;gvExport.DataBind();// 返回客户端gvExport.RenderControl(htmlWriter);curContext.Response.Write("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=gb2312\" />" + strWriter.ToString());curContext.Response.End();}}/// <summary>/// 直接输出Excel/// </summary>/// <param name="dtData"></param>public static void DataTable2Excel(System.Data.DataTable dtData){ System.Web.UI.WebControls.DataGrid dgExport = null; // 当前对话 System.Web.HttpContext curContext = System.Web.HttpContext.Current; // IO⽤于导出并返回excel⽂件 System.IO.StringWriter strWriter = null; System.Web.UI.HtmlTextWriter htmlWriter = null; if (dtData != null) { // 设置编码和附件格式 curContext.Response.ContentType = "application/vnd.ms-excel"; curContext.Response.ContentEncoding =System.Text.Encoding.UTF8; curContext.Response.Charset = ""; // 导出excel⽂件 strWriter = new System.IO.StringWriter(); htmlWriter = new System.Web.UI.HtmlTextWriter(strWriter); // 为了解决dgData中可能进⾏了分页的情况,需要重新定义⼀个⽆分页的DataGrid dgExport = new System.Web.UI.WebControls.DataGrid(); dgExport.DataSource = dtData.DefaultView; dgExport.AllowPaging = false; dgExport.DataBind(); // 返回客户端 dgExport.RenderControl(htmlWriter); curContext.Response.Write(strWriter.ToString()); curContext.Response.End(); }}希望本⽂所述对⼤家的程序设计有所帮助。
使用asp怎样将数据导出到excel文件 Web注意:两个函数中的“data“是网页中要导出的table的 id<input type="hidden" name="out_word" onclick="vbscript:buildDoc" value="导出到word" class="notPrint"><input type="hidden" name="out_excel" onclick="AutomateExcel();" value="导出到excel" class="notPrint">导出到Excel代码<SCRIPT LANGUAGE="JavaScript"><!--function AutomateExcel(){// Start Excel and get Application object.var oXL = new ActiveXObject("Excel.Application");// Get a new workbook.var oWB = oXL.Workbooks.Add();var oSheet = oWB.ActiveSheet;var table = document.all.data;var hang = table.rows.length;var lie = table.rows(0).cells.length;// Add table headers going cell by cell.for (i=0;i<hang;i++){for (j=0;j<lie;j++){oSheet.Cells(i+1,j+1).Value = table.rows(i).cells(j).innerText;}}oXL.Visible = true;erControl = true;}//--></SCRIPT>导出到Word代码<script language="vbscript">Sub buildDocset table = document.all.datarow = table.rows.lengthcolumn = table.rows(1).cells.lengthSet objWordDoc = CreateObject("Word.Document")'objWordDoc.Application.Documents.Add theTemplate, FalseobjWordDoc.Application.Visible=TrueDim theArray(20,10000)for i=0 to row-1for j=0 to column-1theArray(j+1,i+1) = table.rows(i).cells(j).innerTEXTnextnextobjWordDoc.Application.ActiveDocument.Paragraphs.Add.Range.InsertBefore("综合查询结果集") //显示表格标题objWordDoc.Application.ActiveDocument.Paragraphs.Add.Range.InsertBefore("") Set rngPara = objWordDoc.Application.ActiveDocument.Paragraphs(1).Range With rngPara.Bold = True //将标题设为粗体.ParagraphFormat.Alignment = 1 //将标题居中 = "隶书" //设定标题字体.Font.Size = 18 //设定标题字体大小End WithSet rngCurrent = objWordDoc.Application.ActiveDocument.Paragraphs(3).RangeSet tabCurrent = ObjWordDoc.Application.ActiveDocument.Tables.Add(rngCurrent,row,column)for i = 1 to columnobjWordDoc.Application.ActiveDocument.Tables(1).Rows(1).Cells(i).Range.InsertAfter theArray(i,1)objWordDoc.Application.ActiveDocument.Tables(1).Rows(1).Cells(i).Range.Paragraph Format.alignment=1nextFor i =1 to columnFor j = 2 to rowobjWordDoc.Application.ActiveDocument.Tables(1).Rows(j).Cells(i).Range.InsertAfter theArray(i,j)objWordDoc.Application.ActiveDocument.Tables(1).Rows(j).Cells(i).Range.Paragraph Format.alignment=1NextNextEnd Sub</SCRIPT>在ASP中怎么把页面中的数据导出到EXCEL直接读SQL库,我想也可以用来解决你的问题,(同理:页面上显示的内容当然也是读库的,除非你是静态的那算了)<!--#include file="../opendb.asp"--><!--写链接的事不用我弄了吧?--><title>生成报表</title><%dim conn,strconnset conn=server.CreateObject("adodb.connection")conn.Open ConnStrdim rs,sql,filename,fs,myfile,xSet fs = server.CreateObject("scripting.filesystemobject")filepath=Request.ServerVariables("APPL_PHYSICAL_PATH")filename = filepath&"temp_xls\"&year(now)&month(now)&day(now)&".xls"if fs.FileExists(filename) thenfs.DeleteFile(filename)end ifset myfile = fs.CreateTextFile(filename,true)Set rs = Server.CreateObject("ADODB.Recordset")sql = "select * from jdxx"rs.Open sql,conn,1,1if rs.EOF and rs.BOF thenelsedim strLine,responsestrstrLine=""For each x in rs.fieldsstrLine = strLine & & chr(9)Nextmyfile.writeline strLineDo while Not rs.EOFstrLine=""for each x in rs.FieldsstrLine = strLine & x.value & chr(9)nextmyfile.writeline strLiners.MoveNextloopend ifrs.Closeset rs = nothingremotefile="http://xxx.xxx.x.xxx/temp_xls/"&year(now)&month(now)&day(now)&".xls" response.write "<font size=2 color=blue>报表巳生成,<a href="&remotefile&">请点击这里下载该报表!</a></font>"%>在ASP中怎么把页面中的数据导出到EXCEL<%@ LANGUAGE="VBSCRIPT" CODEPAGE="950"%><%'關鍵所在Response.ContentType = "application/vnd.ms-excel"Set conn=Server.CreateObject("ADODB.Connection")Set rs=Server.CreateObject("ADODB.Recordset")strconn = "Provider = SQLOLEDB; Data Source = 192.168.0.2; Uid=gt_bbs;Pwd=gt_bbs;DataBase=gt_bbs"conn.open strconnSQL="Select top 100 id,uid,uer,bm,zw,zb,gxrq,ip,be From Gt_user order by id desc"rs.Open SQL,conn,3,1if rs.eof and rs.bof thenResponse.Write"<div align=center><br>沒有任何記錄</div>"else%><TABLE cellSpacing=0 cellPadding=0 width="100%" border=1><TR><TD width=12% height="25" class=borderon> 代 </TD> <TD width="11%" class=borderon> 名</TD><TD width="11%" class=borderon> 部門</TD><TD width="14%" class=borderon> </TD><TD width="6%" class=borderon> 別</TD><TD width="16%" class=borderon> 登</TD><TD width="16%" class=borderon> 登 IP</TD> </TR></TABLE><TABLE width="100%" border=1 cellPadding=0 cellSpacing=0><%do while (Not RS.Eof) and (I<RS.PageSize)%><TR bgcolor=<%=bg2%>><TD class=all width=12% height=20 > <%=rs(1)%></TD> <TD width="11%" class=all> <%=rs(2)%></TD><TD width="11%" class=all> <%=rs(3)%></TD><TD width="14%" class=all> <%=rs(4)%></TD><TD width="6%" class=all> <%=rs(5)%></TD><TD width="16%" class=all> <%=rs(6)%></TD><TD width="16%" class=all> <%=rs(7)%></TD></TR><%Rs.MoveNextLoopend IFSet Conn = NothingSet Rs = Nothing%></TABLE>。
ASP里-将Excel导入到Access数据库2009-11-18 09:28用ASP编的一个网站,数据库是Access,数据库名称是atest,里面有个表格user,user表格有user和password两个字段现要将Excel表格(名称是test.xls)的数据导入到atest数据库的user表中,怎么实现?高手支招............................................................下面连接到test.xls表sheet1$ '表后面要加个$的,一定要加这个符号Set conn = Server.CreateObject("ADODB.Connection")conn.Open "Driver={Microsoft Excel Driver (*.xls)};ReadOnly=0;DBQ=" & Server.MapPath("test.xls")SQL1="select * from [sheet1$]"Set rs = Server.CreateObject("ADODB.Recordset")rs.Open SQL1, conn, 3, 3'下面连接到atest.mdb表usercurDir = Server.MapPath("atest.mdb")Set conn1 = Server.CreateObject("ADODB.Connection")conn1.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & curDirSet rs1 = Server.CreateObject("ADODB.Recordset")Set rs1.ActiveConnection = conn1rs1.Source = "select * from user"rs1.CursorType = 3 ' adOpenKeysetrs1.LockType = 3 'adLockOptimisticrs1.OpenDo While Not rs.Eofrs1.AddNewrs1(0)=jfor i=0 to rs.Fields.Count-1rs1(i)=Trim(rs(i))Nextrs1.Updaters.MoveNextj=j+1Looprs.Closers1.Closeconn.Closeconn1.CloseSet rs=nothingSet conn=nothing ............................................................................在ASP中怎样把EXCEL导入ACCESSdemo.asp<%Dim cn,oConn,connstr'打开XLS.Set cn = Server.CreateObject("ADODB.Connection")cn.Provider = "Microsoft.Jet.OLEDB.4.0 "cn.ConnectionString = "Data Source=" & Server.MapPath("data.xls") & ";" & _"Extended Properties=Excel 8.0;"cn.Open'打开MDB.connstr="DBQ="+server.MapPath("data.mdb")+";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};"set oConn=server.CreateObject("ADODB.CONNECTION")oConn.open connstr'读取数据.set rsRead=server.CreateObject("ADODB.Recordset")rsRead.Open "select * from [Sheet1$]",cn,1,1do until rsRead.EOF'写入数据库.oConn.Execute("Insert into users(userid,password)Values('"& rsRead.Fields("userid")&"','" &rsRead.Fields("password") & "')" )rsRead.MoveNextloop%>数据库data.mdb表usersid,uesrid,passwordExcel文件data.xls数据userid passwordwang w521zhange z254hong h112'================!!!!ASP读取EXCEL注事项!!!!======================'i)将Excel97或Excel2000生成的XLS文件(book)看成一个数据库,其中的每一个工作表(sheet)看成数据库表'ii)ADO假设Excel中的第一行为字段名.所以你定义的范围中必须要包括第一行的内容'iii)Excel中的行标题(即字段名)不能够包含数字. Excel的驱动在遇到这种问题时就会出错的。
ASPNET中实现EXCEL导入和导出页面效果图如下:录入按钮的OnClick事件代码如下:protectedvoid btnInput_Click(object sender, EventArgs e){if (fpInput.HasFile)//fpInput为FileUpload控件,判断是否选择了文件{string fileExt =System.IO.Path.GetExtension(fpInput.FileName);//获取文件名的后缀if (fileExt == ".xls")//判断文件后缀名是否是xls{try{string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + fpInput.PostedFile.FileName + ";Extended Properties=Excel8.0;";//以xls文件创建连接字符串OleDbConnection conn = new OleDbConnection(strConn); OleDbDataAdapter oada = new OleDbDataAdapter("SELECT * FROM [Sheet1$]", strConn);oada.Fill(dstInput_JWTYBH, "xlsTable");//填充xls中数据到数据集DataTable dtJWTYBH = dstInput_JWTYBH.Tables["xlsTable"];for (int i = 0; i < dtJWTYBH.Rows.Count;i++)//循环读取xls文件中的数据{strSql = "SELECT COUNT(*) FROM XS_JBXX WHERE XS_XH="" + dstInput_JWTYBH.Tables["xlsTable"].Rows[i]["学号"].ToString() + """;int iStNum = Convert.ToInt32(db.ExecScalar(strSql));if (iStNum == 0){strSql = "INSERT INTO XS_JBXX(XS_XH,XS_SFZH,XS_XM,NJ_ID,BJ_BH,XS_XBM,XS_XJH) VALUES("+ """ + dtJWTYBH.Rows[i]["学号"].ToString() + "","+ """ + dtJWTYBH.Rows[i]["身份证号"].ToString() + "","+ """ + dtJWTYBH.Rows[i]["姓名"].ToString() + "","+ """ + dtJWTYBH.Rows[i]["年级编号"].ToString() + "","+ """ + dtJWTYBH.Rows[i]["班级编号"].ToString() + "","+ """ + dtJWTYBH.Rows[i]["性别码"].ToString() + "","+ """ + dtJWTYBH.Rows[i]["教委统一编号"].ToString() + "")";}else if (iStNum == 1){strSql = "UPDATE XS_JBXX SET "+ "XS_SFZH="" + dtJWTYBH.Rows[i]["身份证号"].ToString() + "","+ "XS_XM="" + dtJWTYBH.Rows[i]["姓名"].ToString() + "","+ "NJ_ID="" + dtJWTYBH.Rows[i]["年级编号"].ToString() + "", " + "BJ_BH="" + dtJWTYBH.Rows[i]["班级编号"].ToString() + "", " + "XS_XBM="" + dtJWTYBH.Rows[i]["性别码"].ToString() + "", "+ "XS_XJH="" + dtJWTYBH.Rows[i]["教委统一编号"].ToString() + "" "+ "WHERE XS_XH="" + dtJWTYBH.Rows[i]["学号"].ToString() + """;}db.ExecCommand(strSql);BindData();}}catch (Exception exp){Response.Write("系统出现以下错误:" +exp.Message +"!请尽快与管理员联系.");}finally{db.Close();}}else{Response.Write("");}}Excel文件的导入在中比较简单,主要的要点是FileUpload控件的使用和用OleDb连接物理xls文件.对xls文件中数据的操作同对DataSet中数据的操作是一样的..下面是对导出功能的实现:先定义一个导出函数/////Excel数据导出函数//////<param< p=""> </param<>name="ctl">需要导出数据的控件///<param< p=""> </param<>name="FileName">导出的Excel文件名private voidToExcel(Control ctl, string FileName)HttpContext.Current.Response.ContentEncoding =System.Text.Encoding.GetEncoding("GB2312");HttpContext.Current.Response.Charset = "GB2312";HttpContext.Current.Response.ContentType ="application/ms-excel";HttpContext.Current.Response.AppendHeader("Content-Disposition","attachment;filename=" + "" + FileName);ctl.Page.EnableViewState = false;System.IO.StringWriter tw = new System.IO.StringWriter();HtmlTextWriter hw = new HtmlTextWriter(tw);ctl.RenderControl(hw);HttpContext.Current.Response.Write(tw.ToString());HttpContext.Current.Response.End();}其中一下两行代码最为重要HttpContext.Current.Response.ContentEncoding =System.Text.Encoding.GetEncoding("GB2312");HttpContext.Current.Response.Charset = "GB2312";因为使用GB2312可以解决Excel导出数据出现中文乱码的问题,使用UTF-7/8都会出现乱码.导出按钮的OnClick事件如下:protectedvoid btnOutput_Click(object sender, EventArgs e)gvStJWTYBJ.AllowPaging = false;//设置GridView控件不能分页gvStJWTYBJ.AllowSorting = false;//设置GridView控件不能排序BindData();ToExcel(gvStJWTYBJ, "JWTYBH.xls");gvStJWTYBJ.AllowPaging = true;//恢复GridView控件分页gvStJWTYBJ.AllowSorting =true;//恢复GridView控件排序BindData();//数据绑定函数}如果在页面显示的时候设置了GridView控件是可以分页和排序的则再Excel数据导出的时候就∙分享微经验,让更多的人受益∙快去分享吧!!!只能导出显示的那几条数据而不能导出所有的数据,所以在调用ToExcel()函数进行Excel导出的时候要先设置GridView的排序和分页为false.以上代码还不能实现Excel的数据导出,因为会报以下两个错误.1.类型“GridView”的控件“gvStJWTYBJ”必须放在具有 runat=server 的窗体标记内。
将asp中把数据导出为excel我们在做项目的时候经常要将数据库的数据导出到excel中,很多asp用户并不知道怎么写,下面小编告诉你们两个能将asp导入excel 的方法,希望对你有帮助!将asp中数据导出为excel方法一:使用文件组件1 < %2 dim s,sql,filename,fs,myfile,x34 Set fs = server.CreateObject("scripting.filesystemobject")5 '--假设你想让生成的EXCEL文件做如下的存放6 filename = Server.MapPath("order.xls")7 '--如果原来的EXCEL文件存在的话删除它8 if fs.FileExists(filename) then9 fs.DeleteFile(filename)10 end if11 '--创建EXCEL文件12 set myfile = fs.CreateTextFile(filename,true)131415 StartTime = Request("StartTime")16 EndTime = Request("EndTime")17 StartEndTime = "AddTime between #"& StartTime &" 00:00:00# and #"& EndTime &" 23:59:59#"18 strSql = "select * from mksuers "19 Set rstData =conn.execute(strSql)20 if not rstData.EOF and not rstData.BOF then2122 dim trLine,responsestr23 strLine=""24 For each x in rstData.fields25 strLine = strLine & & chr(9)26 Next2728 '--将表的列名先写入EXCEL29 myfile.writeline strLine3031 Do while Not rstData.EOF32 strLine=""3334 for each x in rstData.Fields35 strLine = strLine & x.value & chr(9)36 next37 myfile.writeline strLine3839 rstData.MoveNext40 loop4142 end if43 Response.Write "生成EXCEL文件成功,点击<a href="/" rel="external nofollow" order.xls"" target=""_blank"">下载!"44 rstData.Close45 set rstData = nothing46 Conn.Close47 Set Conn = nothing48 %>将asp中数据导出为excel方法二:用excel组件1 < %2 set rs=server.createobject("adodb.recordset")3 sql="select * from mkusers"4 rs.open sql,objconn,1,15 Set ExcelApp =CreateObject("Excel.Application")6 ExcelApp.Application.Visible = True7 Set ExcelBook = ExcelApp.Workbooks.Add8 ExcelBook.WorkSheets(1).cells(1,1).value ="用户表"9 ExcelBook.WorkSheets(1).cells(2,1).value = "用户编号"10 ExcelBook.WorkSheets(1).cells(2,2).value = "登陆名"11 ExcelBook.WorkSheets(1).cells(2,3).value = "真实姓名"12 ExcelBook.WorkSheets(1).cells(2,4).value = "密码"13 cnt =314 do while not rs.eof15 ExcelBook.WorkSheets(1).cells(cnt,1).value = rs("provinceid")16 ExcelBook.WorkSheets(1).cells(cnt,2).value = rs("province")17 ExcelBook.WorkSheets(1).cells(cnt,3).value = rs("flag")18 ExcelBook.WorkSheets(1).cells(cnt,4).value = rs("id")19 rs.movenext20 cnt = cint(cnt) + 121 loop22 Excelbook.SaveAs "d:\yourfile.xls" '这个是数据导出完毕以后在D盘存成文件23 ExcelApp.Application.Quit '导出以后退出Excel24 Set ExcelApp = Nothing '注销Excel对象25 %>< %26 set rs=server.createobject("adodb.recordset")27 sql="select * from mkusers"28 rs.open sql,objconn,1,129 Set ExcelApp =CreateObject("Excel.Application")30 ExcelApp.Application.Visible = True31 Set ExcelBook = ExcelApp.Workbooks.Add32 ExcelBook.WorkSheets(1).cells(1,1).value ="用户表"33 ExcelBook.WorkSheets(1).cells(2,1).value = "用户编号"34 ExcelBook.WorkSheets(1).cells(2,2).value = "登陆名"35 ExcelBook.WorkSheets(1).cells(2,3).value = "真实姓名"36 ExcelBook.WorkSheets(1).cells(2,4).value = "密码"37 cnt =338 do while not rs.eof39 ExcelBook.WorkSheets(1).cells(cnt,1).value = rs("provinceid")40 ExcelBook.WorkSheets(1).cells(cnt,2).value = rs("province")41 ExcelBook.WorkSheets(1).cells(cnt,3).value = rs("flag")42 ExcelBook.WorkSheets(1).cells(cnt,4).value = rs("id")43 rs.movenext44 cnt = cint(cnt) + 145 loop46 Excelbook.SaveAs "d:\yourfile.xls" '这个是数据导出完毕以后在D盘存成文件47 ExcelApp.Application.Quit '导出以后退出Excel48 Set ExcelApp = Nothing '注销Excel对象49%>猜你喜欢:。
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表在客客户端显示。
使⽤Aspose.Cells实现导⼊导出本⽂实例为⼤家分享了Aspose.Cells实现导⼊导出的具体代码,供⼤家参考,具体内容如下这是⾃⼰整理的导⼊导出类,⾥⾯有注释。
using System;using System.Collections.Generic;using System.Data;using System.IO;using System.Linq;using System.Text;using System.Threading.Tasks;using Aspose.Cells;namespace mon.ExcelUtil{////// excel操作基类//////public class BaseExcelUtil{private Workbook m_Wb = null;////// ⽣成Excel////// 模板Excel的路径+⽂件名/// Excel⽂件的字节对象public byte[] CreateExcel(string url){FileStream fs = null;try{//读取模板Excel⽂件的中内容fs = new FileStream(url, FileMode.Open, FileAccess.Read, FileShare.Read);m_Wb = new Workbook();m_Wb.Open(fs);setValue(m_Wb);//转换为字节对象并返回return m_Wb.SaveToStream().ToArray();}catch (Exception ex){throw ex;}finally{fs.Close();}}////// 设定Excel中的数据/// 数据源为datable类型////// ⼯作簿public virtual void setValue(Workbook wb){throw new Exception("The method or operation is not implemented.");}////// 读取Excel////// Excel的路径+⽂件名/// Excel⽂件的字节对象public DataTable GetExcel(string url){FileStream fs = null;try{//读取Excel⽂件的中内容fs = new FileStream(url, FileMode.Open, FileAccess.Read, FileShare.Read);m_Wb = new Workbook();m_Wb.Open(fs);//设定Excel中的数据return getValue(m_Wb);}finally{fs.Close();}}////// 取得Excel中的数据////// ⼯作簿public virtual DataTable getValue(Workbook wb){throw new Exception("The method or operation is not implemented.");}////// 设置字符串值/////////public void putValue(Cell c, object value){try{if (value == null || object.Equals(value, DBNull.Value) || value.ToString().Trim().Length == 0) {}else{c.PutValue(value.ToString());}}catch (Exception){c.PutValue("--");}}////// 设置数值值/////////public void putValueDouble(Cell c, object value){try{if (value == null || object.Equals(value, DBNull.Value) || value.ToString().Trim().Length == 0) {}else{c.PutValue(Decimal.Parse(value.ToString()));}}catch (Exception)c.PutValue(value.ToString());}}////// 设置⽇期值/////////public void putDateValue(Cell c, object value){try{if (value == null || object.Equals(value, DBNull.Value) || value.ToString().Trim().Length == 0) {}else{c.PutValue(DateTime.Parse(value.ToString()));}}catch (Exception){c.PutValue(value.ToString());}}}}////实现基类using System;using System.Collections.Generic;using System.Data;using System.Linq;using System.Reflection;using System.Text;using System.Threading.Tasks;using Aspose.Cells;namespace mon.ExcelUtil{////// Excel帮助类///public class ExcelUtil :BaseExcelUtil{private DataTable dt;private string title;public ExcelUtil() {}////// 从第⼏⾏开始读取///public int FirstRow { get; set; }////// 从第⼏列开始读取///public int FirstColumns { get; set; }////// excel标题///public string Title{get { return title; }set { title = value; }}private string fileName;////// ⽂件名///public string FileName{get { return fileName; }set { fileName = value; }}public DataTable Dt{get { return dt; }set { dt = value; }}public bool Flag{set;get;}/////////导出设定值public override void setValue(Workbook wb){int index = 0;Worksheet ws = null;int rcount = dt.Rows.Count, columns = dt.Columns.Count; if (dt != null && dt.Rows.Count > 0){index = wb.Worksheets.AddCopy(0);ws = wb.Worksheets[index]; = FileName.Replace(".xls", "");try{putValue(ws.Cells[0, 0], this.title);int i = 1;for (int j = 0; j < columns; j++){putValue(ws.Cells[1, j], dt.Columns[j].ColumnName); }for (int j = 0; j < rcount; j++){i++;for (int h = 0; h < columns; h++){putValue(ws.Cells[i, h], dt.Rows[j][h].ToString());}}wb.Worksheets.RemoveAt(0);}catch (Exception ex){throw ex;}}}////// 导⼊excel////// 读取的⽂件名/// 从第⼏⾏开始读取/// 从第⼏列开始读取//////public override DataTable getValue(Workbook wb){Worksheet sheet = wb.Worksheets[0];Cells cells = sheet.Cells;return cells.ExportDataTableAsString(FirstRow, FirstColumns, cells.MaxDataRow + 1, cells.MaxDataColumn + 1, true);}}}/////导出调⽤⽅法public ActionResult ToExcel() {List list = new List();for (int i = 0; i < 100; i++){UserInfo info = new UserInfo();info.Age = i.ToString();info.ID = i; = "姓名" + i;list.Add(info);}///将list类型转换为datatableDataTable dt= DataTableHelper.IListToDataTable(list);//实例化帮助类ExcelUtil exc = new ExcelUtil();exc.Dt = dt;exc.FileName = "导出测试.xls";exc.Title = "导出测试";//需要写⼊的模板string url = Server.MapPath("/Content/Down/template.xls");byte[] data = exc.CreateExcel(url);//浏览器下载⽂件Response.AppendHeader("Content-Disposition", "attachment; filename=" + exc.FileName);//HttpUtility.UrlEncode(r.FileName, Encoding.UTF8)); Response.ContentType = "application/ms-excel";Response.AddHeader("Content-Length", data.Length.ToString());Response.ContentEncoding = System.Text.Encoding.GetEncoding("UTF-8");Response.BinaryWrite(data);pleteRequest();return Content("ss");}///导⼊调⽤⽅法public ActionResult ImportExcel(){string url = Server.MapPath("/Content/Down/Import.xls");ExcelUtil exc = new ExcelUtil();exc.FirstRow = 1;exc.FirstColumns = 0;DataTable dt= exc.GetExcel(url);return Content("ss");}以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。
asp导出excel并打印报表1.前言报表打印通常是管理信息系统中的一个重要模块,而Excel凭借它功能强大、应用灵活、通用性强等的优势在报表打印中获得了广泛的应用。
最初的管理信息系统基本上是采用客户机/服务器(C/S)模式开发的,但随着WWW的广泛应用,目前的管理信息系统已经逐渐开始从C/S模式向浏览器/服务器(B/S)模式转变。
B/S模式具有传统C/S模式所不及的很多特点,如更加开放、与软硬件无关、应用扩充和系统维护升级方便等等,目前已成为企业网上首选的计算模式,原先在C/S下的很多软件都开始移植到B/S模式下。
由于B/S模式的特殊性,在C/S下相对较易实现的Excel报表打印功能在B/S下却成为一个难点。
本文根据在实际的项目中总结的经验,以ASP为例,给出了一个较好的通用方法。
2. 功能实现为了说明问题,这里举一个例子。
系统平台是Windows 2000+SQL Server 2000+IIS5.0+ASP 3,报表采用的是Excel,要求按照给定的报表格式生成图书销售统计的报表,并能够打印。
2.1 Excel报表模板的制作首先根据给定的报表格式,制作一个Excel模板(就是要打印的报表的表格),当然其中需要从数据库中动态统计生成的数据留着空白。
这个报表先在Excel中画好,然后保存为模板,存放在起来,这里为\test\book1.xlt。
2.2 Excel报表的生成与打印这里采用了Excel的Application组件,该组件在安装Excel时安装到系统中。
我们的操作也都是针对该组件。
(1) 建立Excel.Application对象set objExcel=CreateObject("Excel.Application")(2) 打开Excel模板objExcel.Workbooks.Open(server.mappath("\test")&"\book1.xlt") '打开Excel模板objExcel.Sheets(1).select '选中工作页set sheetActive=objExcel.ActiveWorkbook.ActiveSheet(3) Excel的常规添加操作例如sheetActive.range("g4").value=date() …这里添加的是时间,当然也可以是你指定的任何数据(4) Excel中添加数据库中的纪录这里假设已有一个数据集adoRset,存放由Sql操作生成的统计数据。
ASP导出E xcel数据的四种方法什么是OWC?OWC是O ffice WebCompe nt的缩写,即Mic rosof t的Off ice W eb组件,它为在We b中绘制图形提供了灵活的同时也是最基本的机制。
在一个intr anet环境中,如果可以假设客户机上存在特定的浏览器和一些功能强大的软件(如IE5和Off ice 2000),那么就有能力利用Of ficeWeb组件提供一个交互式图形开发环境。
这种模式下,客户端工作站将在整个任务中分担很大的比重。
<%Opti on Ex plici tCl ass E xcelG enP rivat e obj Sprea dshee tPr ivate iCol Offse tP rivat e iRo wOffs etS ub Cl ass_I nitia lize()Se t obj Sprea dshee t = S erver.Crea teObj ect("OWC.S pread sheet")i RowOf fset= 2 iColO ffset = 2EndSub SubClass_Term inate()S et ob jSpre adshe et =Nothi ng 'C leanupE nd Su bP ublic Prop ertyLet C olumn Offse t(iCo lOff)IfiColO ff >0 the niC olOff set = iCol Off ElseiCol Offse t = 2End If End P roper tyPubli c Pro perty LetRowOf fset(iRowO ff) If iR owOff> 0theniRow Offse t = i RowOf fEl sei RowOf fset= 2 End I fEn d Pro perty SubGener ateWo rkshe et(ob jRS)'Pop ulate s the Exce l wor kshee t bas ed on a Re cords et'sconte nts 'Star t bydispl aying thetitle sIf objR S.EOF then Exit SubDimobjFi eld,iCol, iRowiCo l = i ColOf fsetiRow = iR owOff set For E ach o bjFie ld in objR S.Fie lds objSp reads heet.Cells(iRow, iCo l).Va lue = objF ield.NameobjS pread sheet.Colu mns(i Col).AutoF itCol umns'设置E xcel表里的字体objS pread sheet.Cell s(iRo w, iC ol).F ont.B old = Trueobj Sprea dshee t.Cel ls(iR ow, i Col).Font.Itali c = F alseobjS pread sheet.Cell s(iRo w, iC ol).F ont.S ize = 10 objSp reads heet.Cells(iRow, iCo l).Ha lignm ent = 2 '居中iC ol =iCol+ 1 Next'objF ield'Dis playall o f the dataDoWhile NotobjRS.EOFiRow = iR ow +1iC ol =iColO ffsetFor Each objF ieldin ob jRS.F ieldsIfIsNul l(obj Field.Valu e) th eno bjSpr eadsh eet.C ells(iRow, iCol).Val ue =""E lse objSp reads heet.Cells(iRow, iCo l).Va lue = objF ield.Valueobj Sprea dshee t.Col umns(iCol).Auto FitCo lumnsobj Sprea dshee t.Cel ls(iR ow, i Col).Font.Bold= Fal seo bjSpr eadsh eet.C ells(iRow, iCol).Fon t.Ita lic = Fals eob jSpre adshe et.Ce lls(i Row,iCol).Font.Size = 10End If iCol= iCo l + 1Nex t 'ob jFiel dob jRS.M oveNe xtL oop End S ub Fu nctio n Sav eWork sheet(strF ileNa me) 'Sav e the work sheet to a spec ified file nameOn E rrorResum e Nex tCa ll ob jSpre adshe et.Ac tiveS heet.Expor t(str FileN ame,0)S aveWo rkshe et =(Err.Numbe r = 0)En d Fun ctionEnd Clas sD im ob jRS Set o bjRS= Ser ver.C reate Objec t("AD ODB.R ecord set")obj RS.Op en "S ELECT * FR OM xx xx","Prov ider=SQLOL EDB.1;Pers ist S ecuri ty Info=True;UserID=xx xx;Pa sswor d=xxx x;Ini tialCatal og=xx xx;Da ta so urce=xxxx;" Di m Sav eNameSav eName = Re quest.Cook ies("saven ame")("nam e") Dim o bjExc elD im Ex celPa thE xcelP ath = "Exc el\"& Sav eName & ".xls"SetobjEx cel = NewExcel Gen objEx cel.R owOff set = 1o bjExc el.Co lumnO ffset = 1objE xcel.Gener ateWo rkshe et(ob jRS)If o bjExc el.Sa veWor kshee t(Ser ver.M apPat h(Exc elPat h)) t hen 'Resp onse.Write "<ht ml><b ody b gcolo r='ga insbo ro' t ext='#000000'>已保存为Ex cel 文件.<a hre f='"& ser ver.U RLEnc ode(E xcelP ath)& "'>下载</a>"E lse Respo nse.W rite"在保存过程中有错误!"E nd IfSet objE xcel= Not hingobjR S.Clo seS et ob jRS = Noth ing %>二、用Excel的Appl icati on组件在客户端导出到Exce l或Wor d注意:两个函数中的“d ata“是网页中要导出的tab le的i d<i nputtype="hidd en" n ame="out_w ord"oncli ck="v bscri pt:bu ildDo c" va lue="导出到wo rd" c lass="notP rint"><i nputtype="hidd en" n ame="out_e xcel" oncl ick="Autom ateEx cel();" va lue="导出到ex cel"class="not Print">导出到Exce l代码<SCRI PT LA NGUAG E="ja vascr ipt"><!--fu nctio n Aut omate Excel(){//Start Exce l and getAppli catio n obj ect.varoXL = newActiv eXObj ect("Excel.Appl icati on");//Get a newworkb ook.varoWB = oXL.Workb ooks.Add();va r oSh eet = oWB.Activ eShee t;v ar ta ble = docu ment.all.d ata;varhang= tab le.ro ws.le ngth;va r lie = ta ble.r ows(0).cel ls.le ngth;// Addtable head ers g oingcellby ce ll. for (i=0;i<hang;i++){ for (j=0;j<lie;j++)o Sheet.Cell s(i+1,j+1).valu e = t able.rows(i).ce lls(j).inn erTex t;}}oXL.Visib le =true;oXer Contr ol =true;} //--></S CRIPT>导出到Word代码<s cript lang uage="vbsc ript">Su b bui ldDocset tabl e = d ocume nt.al l.dat aro w = t able.rows.lengt hco lumn= tab le.ro ws(1).cell s.len gth SetobjWo rdDoc = Cr eateO bject("Wor d.Doc ument")objWo rdDoc.Appl icati on.Do cumen ts.Ad d the Templ ate,Falseobj WordD oc.Ap plica tion.Visib le=Tr ueDim t heArr ay(20,10000)f or i=0 torow-1for j=0to co lumn-1th eArra y(j+1,i+1) = ta ble.r ows(i).cel ls(j).inne rTEXTnex tne xto bjWor dDoc.Appli catio n.Act iveDo cumen t.Par agrap hs.Ad d.Ran ge.In sertB efore("综合查询结果集") //显示表格标题ob jWord Doc.A pplic ation.Acti veDoc ument.Para graph s.Add.Rang e.Ins ertBe fore("") Set r ngPar a = o bjWor dDoc.Appli catio n.Act iveDo cumen t.Par agrap hs(1).Rang eWi th rn gPara.Bo ld =True//将标题设为粗体.Par agrap hForm at.Al ignme nt =1 //将标题居中.Fon t.Nam e = "隶书" //设定标题字体.Font.Size= 18//设定标题字体大小End WithSet rngC urren t = o bjWor dDoc.Appli catio n.Act iveDo cumen t.Par agrap hs(3).Rang eSe t tab Curre nt =ObjWo rdDoc.Appl icati on.Ac tiveD ocume nt.Ta bles.Add(r ngCur rent,row,c olumn)f or i= 1 t o col umn objW ordDo c.App licat ion.A ctive Docum ent.T ables(1).R ows(1).Cel ls(i).Rang e.Ins ertAf ter theArr ay(i,1)o bjWor dDoc.Appli catio n.Act iveDo cumen t.Tab les(1).Row s(1).Cells(i).R ange.Parag raphF ormat.alig nment=1n ext For i =1 t o col umn For j = 2to ro wob jWord Doc.A pplic ation.Acti veDoc ument.Tabl es(1).Rows(j).C ells(i).Ra nge.I nsert After theA rray(i,j)objW ordDo c.App licat ion.A ctive Docum ent.T ables(1).R ows(j).Cel ls(i).Rang e.Par agrap hF orm at.al ignme nt=1NextNex tE nd Su b</SCRIP T>三、直接在IE中打开,再存为EXCEL文件把读出的数据用<t able>格式,在网页中显示出来,同时,加上下一句即可把EX CEL表在客客户端显示。
开发过程中,会遇到一个很常见的问题,就是需要把数据库中大量的数据导入到excel中,以便用户能够将数据带到不具备访问系统的地方查看相关数据。
这里针对这个问题,简单介绍几种常用的方法,仅供参考。
一、中导出Excel的方法:在 中导出Excel有两种方法,一种是将导出的文件存放在服务器某个文件夹下面,然后将文件地址输出在浏览器上;一种是将文件直接将文件输出流写给浏览器。
在Response输出时,t分隔的数据,导出Excel时,等价于分列,n等价于换行。
1、将整个 html全部输出Excel此法将html中所有的内容,如按钮,表格,图片等全部输出到Excel中。
Response.Clear();Response.Buffer= true;Response.AppendHeader("Content-Disposition","attachment;filename=" +DateTime.Now.ToString("yyyyMMdd")+".xls");Response.ContentEncoding=System.Text.Encoding.UTF8;Response.ContentType = "application/vnd.ms-excel";this.EnableViewState = false;这里我们利用了ContentType属性,它默认的属性为text/html,这时将输出为超文本,即我们常见的网页格式到客户端,如果改为ms-excel将将输出excel 格式,也就是说以电子表格的格式输出到客户端,这时浏览器将提示你下载保存。
ContentType的属性还包括:image/JPEG;text/HTML;image/GIF;vnd.ms-excel/msword 。
同理,我们也可以输出(导出)图片、word文档等。
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。
之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数据导⼊到数据库中。
ASP实现Excel工作表和数据库的导入导出作者:钟贞魁
来源:《中小企业管理与科技·上旬刊》2015年第04期
摘要:本文论述了利用ASP技术将Excel工作表导入到数据库,将数据库查询出来的数据导出到Excel工作表的实现方法,并给出了程序实例。
关键词:ASP; Excel; 数据库
0 引言
在互联网高速发展的今天,很多企事业单位建立了自己的网站,网站信息管理员平时把数据输入到网站的数据库,网站程序会自动计算、统计、分析数据,并产生用户所需的报表,但目前很多B/S结构的信息管理系统,数据的输入还是只能一条一条记录地输入,输出的报表格式固定不能满足用户的需求。
对于信息管理员来说,很多的数据还是存储在Excel工作簿中,比如:某手机经营店上了一套进销存管理系统,店里每次进货都是几百上千地进,供货商会给出Excel格式的进货单,存储的信息是手机串号、机型、品牌、进价等信息,对于手机经营店来说,希望能够直接把供货商给的Excel工作表数据导入系统,如果自己输入,工作量很大。
企业应用软件最后输出结果都是报表的形式,他们希望输出的报表能够进行二次分析利用。
对于开发信息管理系统的程序员来说,报表的显示和打印是整个开发过程中最麻烦但又必须做的事情,如果我们能把报表输出结果转化到Excel文件中,提供给用户进行二次加工处理,这样就提高了程序的通用性。
本文介绍了ASP技术实现网站数据库和Excel交互的方式,给出了程序实例。
1 相关技术简介
①Excel电子表格。
Excel是微软办公套装软件的一个重要的组成部分,它可以进行各种数据的处理、统计分析和辅助决策操作,广泛地应用于管理、统计财经、金融等众多领域。
大部分人都是用它来进行数据处理,制作电子表格。
②ASP和SQL Server数据库。
ASP是一种服务器端脚本编写环境,可以用来创建和运行动态网页或Web应用程序。
ASP网页可以包含HTML标记、普通文本、脚本命令以及COM组件等。
它可以与数据库和其它程序进行交互,是一种简单、方便的编程工具。
SQL Server是目前比较流行的关系数据库管理系统,广泛应用于网站的后台数据库。
ASP与SQL Server数据库的组合是构建商务网站的一种解决方案。
2 ASP实现批量导入Excel工作表
下面以笔者开发的一套手机管理系统为例,介绍如何将Excel文件中保存的手机入库信息导入到网站后台数据库的实现过程。
这里以SQL Server作为网站的后台数据库。
2.1 将需要导入的Excel文件上传到网站目录。
上传的目的主要是为了更方便地读取Excel 文件的内容。
笔者开发的思路是使用ASP连接Excel文档,打开指定的工作表,读取Excel工作表中的记录,再写入到SQL Server数据库中。
上传文件的实现,这里就不详细介绍,可以使用组件。
假设上传到网站根目录的excel_up文件夹。
上传入库信息的网页“pl_phone_lr.asp”的界面如下图1所示。
■
在开发的时候,我们先向客户要了一个手机入库信息电子表格,和客户一起商量了需要导入的数据的格式,有哪些字段,字段的数据类型,字段大小等。
具体格式要求如下图2所示。
■
其中手机串号为15位数字字符,工作簿文件的命名没有要求,表的名为固定为“入库细表”,这个很重要,不能改变,不然后面的程序找不到要读取的表名。
2.2 设计Excel文档导入到SQL Server数据库的程序。
①图1的界面,浏览找到需要上传的文件后,按下“开始上传”按钮提交表单,网页跳转到如下图3所示的网页(upload.asp)。
■
此网页文本框中保存了上传后工作簿的文件名,按下“转换到数据库”按钮,将提交到exceltosql.asp页面处理。
②exceltosql.asp页面负责读取Excel工作表的内容,并写入SQL Server数据库。
实现过程并不复杂,关键是使用ASP连接上Excel工作簿,把工作簿文档也当做数据库来访问,只是连接的代码不同而已。
连接Excel工作簿代码如下:
<%
source1=server.MapPath("excel_up")&"/"&request("filename") '获取上传文件的路径信息
myConn_Xsl="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" &source1& ";Extended Properties=Excel 8.0" '连接Excel工作簿的字符串
xlsconn.open myConn_Xsl; '打开Excel工作簿连接
sql="select * from [入库细表$] where 串号<>'' "; '定义读取入库细表的sql语句
3 ASP实现导出查询数据到Excel工作表
对于一个信息管理系统来说,数据导入之后,我们需要查询各种信息,并且生成报表打印输出。
例如手机管理系统中,手机统计表的格式如图4所示。
■
ASP的页面中,查询出来的数据用表格的形式进行布局,我们可以选定内容复制到Excel 表中,这样比较麻烦。
其实,我们在ASP的查询页面中,只要加“<%response.ContentType = "application/vnd.ms-excel"%>”这样一行代码,就可以把查询的内容输出到Excel表中。
4 结语
本文介绍的ASP技术实现Excel数据导入导出数据库的方法,实现原始数据到网站数据库的自动导入,避免了大量数据重新输入的问题,提高了管理人员的工作效率,查询出来的数据导出到Excel工作表中,用户可以自己修改报表格式进行输出打印。
参考文献:
[1]徐辉.电子商务网站导入Excel数据的设计与实现[J].商场现代化,2008.10.
[2]郭永亮,邓强.在JSP中实现查询并导入Excel的通用程序[J].甘肃冶金,2006.3.
[3]李玉梅.动态WEB数据库应用研究[D].昆明理工大学,2001.
作者简介:钟贞魁(1981-),男,江西兴国人,江西环境工程职业学院,副教授,研究方向:软件工程,网站设计。