如何用asp读取Excel文件(比较全面)

合集下载

.NET读写Excel工具Spire.Xls使用入门教程(1)

.NET读写Excel工具Spire.Xls使用入门教程(1)

.NET读写Excel⼯具Spire.Xls使⽤⼊门教程(1)在.NET平台,操作Excel⽂件是⼀个⾮常常⽤的需求,⽬前⽐较常规的⽅法有以下⼏种:1.Office Com组件的⽅式:这个⽅式⾮常累⼈,微软的东西总是这么的复杂,使⽤起来可能⾮常不便,需要安装Excel,对于服务器,有时候还需要为配置IIS权限。

折腾⼈,看到很多⼈在群⾥⾯使⽤这个东西,出现各种抓狂的错误; 这⾥特别感谢:的回复,⽤⽤powershell + excel 2007的⽅式,他很好的解决问题。

其实我想说的是,Office既然提供了对com组件的⽀持,肯定是各⽅⾯问题都考虑到了,使⽤肯定是没有问题的,只不过学习成本很⼤,每个⼈精⼒,技术能⼒有限,懒得去折腾和再去学习,解决的⽅式肯定都是有的。

⽽纯粹的NPOI,Spire这种操作⽅式可以让更多的开发⼈员快速的掌握,效率提⾼,各有所长吧,看⾃⼰的选择。

另外对于免费版本的限制和收费的问题,这个暂时没有办好,⼤家⼋仙过海各显神通把。

哈哈,你懂的。

2.开源.NET组件NPOI⽅式:这个⽅式应该是很多⼈都在使⽤的,这个开源的组件相⽐第⼀种,虽然稍微简单了点(2003⽀持⽐较好,新版本也⽀持Xlsx),但还是⾮常好⽤的;最近在浏览NPOI的开源⽹站的时候,突然发现Spire居然是NPOI的赞助商。

赞⼀个吧,互相帮助,服务⼤众,不像国内的什么百毒,企鹅,⼀天到晚打架,互抨,还要封杀,真是可怜啊。

看看NPOI的Codeplex⽹站截图: 今天给⼤家介绍的.NET平台操作Excel组件Spire.XLS,应该来说⽐上⾯2种⽅法要更好更稳定,功能也更多,先看看基本介绍:1.Spire.Office for .NET2.Spire.XLS特点 Spire.XLS for .NET ⽀持所有Excel格式类型(97-2003, 2007, 2010)⽂件。

通过Spire.XLS for .NET,开发⼈员可以快速⽅便的查看,⽣成,读写以及⾃定义编辑Excel⽂件。

探索服务器端Excel数据处理:ASP与ADODB的协同

探索服务器端Excel数据处理:ASP与ADODB的协同

探索服务器端Excel数据处理:ASP与ADODB的协同《探索服务器端Excel数据处理:ASP与ADODB的协同》在当今数字化时代,数据的处理和分析变得尤为重要。

尤其是在服务器端,处理Excel文件成为了一项常见且关键的任务。

本文将深入探讨如何使用ASP(Active Server Pages)和ADODB(ActiveX Data Objects)技术来处理上传的Excel文件,实现数据的有效管理和操作。

一、ASP与ADODB:服务器端数据处理的基石ASP作为一种服务器端脚本环境,能够与数据库进行交互,处理客户端请求,生成动态网页。

而ADODB则提供了一种与数据源进行交互的途径,使得在服务器端处理数据成为可能。

二、Excel文件的服务器端读取在服务器端读取Excel文件,首先需要确保文件的路径正确,然后通过ADODB连接对象建立与Excel文件的连接。

使用特定的连接字符串,可以指定Excel文件作为数据源,并设置相应的属性以适应不同的Excel版本。

三、数据的提取与处理一旦连接建立,就可以使用ASP脚本执行SQL查询,从Excel文件中提取数据。

通过遍历结果集,可以逐行读取数据,为进一步的处理和分析做准备。

四、数据的插入与数据库操作获取数据后,常见的操作是将这些数据插入到数据库中。

通过构建合适的SQL语句,可以将Excel中的数据导入到数据库表中,实现数据的持久化存储。

五、性能优化与错误处理在处理Excel文件时,性能优化和错误处理是不可忽视的环节。

合理的资源管理和错误捕捉机制,能够确保数据处理的稳定性和可靠性。

六、结语:ASP与ADODB的协同优势通过ASP和ADODB的协同工作,服务器端的Excel数据处理变得高效且灵活。

这种技术组合不仅提高了数据处理的自动化水平,还为数据驱动的Web应用提供了强大的支持。

winform读取excel的方法

winform读取excel的方法

winform读取excel的方法在WinForms应用程序中,读取Excel文件是一个常见的任务。

可以使用以下方法来实现:1. 使用Microsoft Office Interop库:这是一种使用Microsoft Office提供的COM接口来读取Excel文件的方法。

首先,确保计算机上已安装Microsoft Excel。

然后,在项目中添加对Microsoft Office Interop库的引用。

下面是一个示例代码,展示了如何使用该方法:```csharpusing Excel = Microsoft.Office.Interop.Excel;// 创建Excel应用程序对象Excel.Application excelApp = new Excel.Application();// 打开Excel文件Excel.Workbook workbook = excelApp.Workbooks.Open("路径/文件名.xlsx");// 选择要读取的工作表Excel.Worksheet worksheet = workbook.Sheets["工作表名称"];// 获取单元格的值string cellValue = worksheet.Cells[row, column].Value.ToString();// 关闭Excel文件和应用程序对象workbook.Close();excelApp.Quit();```请注意,使用COM对象会占用系统资源,并且需要正确处理释放资源的步骤。

2. 使用第三方库:除了使用Microsoft Office Interop库,还可以使用一些第三方库来读取Excel文件,例如EPPlus和NPOI。

这些库提供了更简单和高效的方法。

下面是一个使用EPPlus库的示例代码:```csharpusing OfficeOpenXml;// 打开Excel文件using (ExcelPackage package = new ExcelPackage(new FileInfo("路径/文件名.xlsx"))){// 选择要读取的工作表ExcelWorksheet worksheet = package.Workbook.Worksheets["工作表名称"];// 获取单元格的值string cellValue = worksheet.Cells[row, column].Value.ToString();}```使用第三方库可以实现更好的性能和更简化的代码,但需要先将库添加到项目中。

ASP 读取文件内容

ASP  读取文件内容

ASP 读取文件内容
用户在对各种文件进行操作时,如果想查看某文件的内容时,可以鼠标左键双击该文件图标,打开文件并查看。

本扩展练习中,将使用File对象实现读取文本文件内容信息并显示在浏览器上的功能。

(1)创建一个命名为ReadTxt.asp的ASP页面,主要实现留言内容的添加。

左键单击【文件】|【新建】命令,弹出【新建文档】对话框,在对话框的【文件类型】中选择【ASP VbScript】,【布局】中选择【无】,单击【创建】按钮。

(2)左键单击【文件】|【保存】命令,弹出另存为对话框。

在对话框的【文件名】中输入ReadTxt.asp,【保存类型】的下拉列表框中选择“Active Server Pages(*.asp;*.asa)”,单击【保存(S)】按钮。

(3)添加ASP文件要用到的语言包和编码。

(5)执行上述代码,结果如图5-14所示。

图5-14 查看TXT文本信息。

ASP对Excel的所有操作

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⽂档进⾏导⼊导出操作使⽤前请先下载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⽂件下载。

sxssfworkbook读取excel用法 -回复

sxssfworkbook读取excel用法 -回复

sxssfworkbook读取excel用法-回复标题:SXSSFWorkbook读取Excel文件的详细用法字数:1879字摘要:SXSSFWorkbook是Apache POI库中一个用于处理大型Excel文件的工具。

本文将深入探讨如何使用SXSSFWorkbook来读取Excel文件,并提供详细的步骤和示例代码。

引言:在日常工作和数据处理中,Excel表格是一种常见的数据格式。

然而,当面临大规模数据或者大型Excel文件时,传统的Excel读取方法可能会遇到性能问题。

为解决这个问题,Apache POI库引入了SXSSFWorkbook 类,它是一种基于XSSF(Streaming Usermodel,适用于大文件)的替代品。

SXSSFWorkbook可以快速读取大型Excel文件而不会导致内存问题。

本文将介绍SXSSFWorkbook读取Excel文件的基本步骤,包括准备工作、创建SXSSFWorkbook对象、操作Excel文件、读取数据和关闭资源等。

一、准备工作在使用SXSSFWorkbook读取Excel文件之前,需要确保已经正确安装以下工具:1. Java开发环境,如JDK等;2. Apache POI库,最新版本的jar文件。

二、创建SXSSFWorkbook对象在准备工作完成后,可以开始创建SXSSFWorkbook对象。

下面是一段示例代码:javaimport org.apache.poi.xssf.streaming.SXSSFWorkbook;public class ExcelReader {public static void main(String[] args) {SXSSFWorkbook workbook = new SXSSFWorkbook();}}在这个示例中,我们导入了SXSSFWorkbook类,并在main方法中创建了一个SXSSFWorkbook对象。

三种读取Excel方法

三种读取Excel方法

三种读取Excel方法转自:/happy09li/article/details/7431967 三种读取Excel方法---------------------------------------------------方法一[csharp] view plaincopy/// <summary>/// 解析Excel,返回DataTable/// </summary>/// <param name="fileName"></param>/// <returns></returns>public static System.Data.DataT able ImpExcel(string fileName){System.Data.DataT able dt = new System.Data.DataTable();try{Microsoft.Office.Interop.Excel.Application app;Workbooks wbs;Worksheet ws;app = new Microsoft.Office.Interop.Excel.Application();wbs = app.Workbooks;wbs.Add(fileName);ws = (Worksheet)app.Worksheets.get_Item(1);int rows = edRange.Rows.Count;int columns = edRange.Columns.Count;string bookName = ;dt = LoadDataFromExcel(filePath, bookName).Tables[0];//for (int i = 1; i < rows + 1; i++)//{// DataRow dr = dt.NewRow();// for (int j = 1; j <= columns; j++)// {// _Excel.Range range = ws.get_Range(app.Cells[i, j], app.Cells[i, j]);// range.Select();// if (i == 1)// dt.Columns.Add("Columns" + j);// dt.Columns.Add(app.ActiveCell.Text.T oString())可以直接用第一行作为列名,单合并单元格后,读取出来后列名相同会报错,所以最好不用// dr[j - 1] = app.ActiveCell.Text.T oString();// }// dt.Rows.Add(dr);//}//newdt = dt.Clone();//for (int i = 0; i < dt.Rows.Count; i++)//{// if (dt.Rows[i][5].T oString() != "" && dt.Rows[i][6].T oString() != "" && dt.Rows[i][7].T oString() != "" && dt.Rows[i][8].T oString() != "" || i == 0)// newdt.ImportRow(dt.Rows[i]);//}KillProcess(app);return dt;}catch (Exception ex){MessageBox.Show("数据绑定Excel失败! 失败原因:"+ex.Message, "提示信息", MessageBoxButtons.OK, rmation);return dt;}}----------------------------------------------------方法二[csharp] view plaincopy/// <summary>/// 解析Excel/// </summary>/// <param name="filePath"></param>/// <param name="name"></param>/// <returns></returns>public static DataSet LoadDataFromExcel(string filePath, string name){try{string strConn;// strConn = " Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source = " + filePath + ";Extended Properties=Excel 8.0";strConn = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filePath + ";Extended Properties='Excel 12.0 Xml;HDR=Yes;IMEX=1'";OleDbConnection OleConn = new OleDbConnection(strConn);OleConn.Open();string sql = "SELECT * FROM [" + name + "$]";//可是更改Sheet名称,比如sheet2,等等OleDbDataAdapter OleDaExcel = new OleDbDataAdapter(sql, OleConn);DataSet OleDsExcle = new DataSet();OleDaExcel.Fill(OleDsExcle, name);OleConn.Close();return OleDsExcle;}catch (Exception err){MessageBox.Show("数据绑定Excel失败! 失败原因:" + err.Message, "提示信息", MessageBoxButtons.OK, rmation);return null;}}——————————————————插入Excel[csharp] view plaincopy/// <summary>/// 写入Excel文档/// </summary>/// <param name="Path">文件名称</param>public bool SaveFP2toExcel(string Path){try{string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" +"Data Source="+ Path +";"+"Extended Properties=Excel 8.0;";OleDbConnection conn = new OleDbConnection(strConn);conn.Open();System.Data.OleDb.OleDbCommand cmd=new OleDbCommand ();cmd.Connection =conn;for(int i=0;i<fp2.Sheets [0].RowCount -1;i++){if(fp2.Sheets [0].Cells[i,0].Text!=""){mandText ="INSERT INTO [sheet1$] (工号,姓名,部门,职务,日期,时间) VALUES('"+fp2.Sheets [0].Cells[i,0].Text+ "','"+ fp2.Sheets [0].Cells[i,1].Text+"','"+fp2.Sheets [0].Cells[i,2].Text+"','"+fp2.Sheets [0].Cells[i,3].Text+"','"+fp2.Sheets [0].Cells[i,4].Text+"','"+fp2.Sheets [0].Cells[i,5].Text+"')";cmd.ExecuteNonQuery ();}}conn.Close ();return true;}catch(System.Data.OleDb.OleDbException ex){System.Diagnostics.Debug.WriteLine ("写入Excel发生错误:"+ex.Message );}return false;}[csharp] view plaincopy//新增、修改_Excel.Application app = new _Excel.ApplicationClass();app.Visible = false;_Excel.Workbook book = app.Workbooks.Open(UpdateExcelPath, System.Type.Missing, System.Type.Missing, System.Type.Missing, System.Type.Missing, System.Type.Missing, System.Type.Missing, System.Type.Missing, System.Type.Missing, System.Type.Missing, System.Type.Missing, System.Type.Missing, System.Type.Missing, System.Type.Missing, System.Type.Missing);_Excel.Worksheet sheet = (_Excel.Worksheet)book.ActiveSheet;for (int i = 0; i < dt.Rows.Count; i++){sheet.Cells[i + 2, 1] = dt.Rows[i][0].T oString();sheet.Cells[i + 2, 2] = dt.Rows[i][1].T oString();}book.Save();book.Close(sheet, UpdateExcelPath, System.Type.Missing);app.Quit();System.GC.Collect();[csharp] view plaincopy——————————————————修改Excel的值//修改第一行Name的值为张三string strComm = "update [Sheet1$] set Name='张三' WHERE 工号='132'";OleDbConnection myConn = newOleDbConnection(strConn);myConn.Open();OleDbCommand com = new OleDbCommand(strComm, myConn);com.ExecuteNonQuery();myConn.Close();方法三用NPOI读取----------------------------用流导出Excel[csharp] view plaincopy<span style="font-size:18px;"> private void FileStream() {FileStream fs = new FileStream(path, FileMode.Create, FileAccess.Write);StreamWriter sw = new StreamWriter(fs, System.Text.Encoding.GetEncoding("gb2312"));string html = @"C:\Documents and Settings\Administrator\桌面\1.html";sw.WriteLine(File.ReadAllText(html));sw.Close();}</span>----------------------------导出[csharp] view plaincopyusing _Excel = Microsoft.Office.Interop.Excel;using System.Drawing;using System.Reflection;using System.Windows.Forms;using Microsoft.Office.Interop.Excel;/// <summary>/// DataTable直接导出Excel,此方法会把DataTable的数据用Excel打开,再自己手动去保存到确切的位置/// </summary>/// <param name="dt">要导出Excel的DataTable</param> /// <returns></returns>public static void ExportExcel(System.Data.DataTable table, string savePath, bool isExit){if (!isExit)//保存路径是否存在File.Copy(System.Windows.Forms.Application.StartupPath + @"\Excel\Excel.xls", savePath);_Excel.Application app = new _Excel.ApplicationClass();if (app == null){throw new Exception("Excel无法启动");}app.Visible = false;_Excel.Workbook book = app.Workbooks.Open(savePath, System.Type.Missing, System.Type.Missing, System.Type.Missing, System.Type.Missing, System.Type.Missing, System.Type.Missing, System.Type.Missing, System.Type.Missing, System.Type.Missing, System.Type.Missing, System.Type.Missing, System.Type.Missing, System.Type.Missing, System.Type.Missing);_Excel.Worksheet sheet = (_Excel.Worksheet)book.ActiveSheet;for (int k = 1; k < ds.Tables[1].Rows.Count + 1; k++){_Excel.Sheets xlSheets = book.Sheets as Sheets;// 添加 Sheetsheet = (Worksheet)xlSheets.Add(xlSheets[1], Type.Missing, Type.Missing, Type.Missing);}for (int j = 1; j < ds.Tables[1].Rows.Count + 1; j++){_Excel.Range range = null;sheet = (_Excel.Worksheet)book.Sheets[j];if (!istrue) ="123";else = "345";range = sheet.get_Range("A1", "C3");range.MergeCells = true;//合并,将1-3行和1-3列合并为一个单元格range.WrapText = true; //自动换行range.EntireRow.AutoFit();//行高根据内容自动调整sheet.get_Range("A1","C3").Borders[XlBordersIndex.xlEdgeBottom].LineStyle = BorderStyle.FixedSingle;//将1-3行和1-3列合并的单元格划下划线,根据[]内属性,可以设置文本上、下、左、右的的边框框sheet.get_Range("A1", "C3").Borders.LineStyle = BorderStyle.FixedSingle;//给整个合并的单元格加上边框sheet.get_Range("A1", "C3") = "Times New Roman";//设置字体.sheet.get_Range("A1", "C3").Font.Size = 22;//设置字体大小range.Font.Bold = true;//加粗range.RowHeight = 22;//调行高rang.Interior.Color = System.Drawing.Color.FromArgb(255, 204, 153).ToArgb();//加背景色range = sheet.get_Range(string.Format("D{0}", 1), string.Format("F{0}", 1));range.MergeCells = true;//合并,将3-5列合并为一个单元格range.HorizontalAlignment = XlHAlign.xlHAlignCenter;//合并后文本水平居中range.VerticalAlignment = XlVAlign.xlVAlignCenter;//合并后文本竖直居中單個sheet里求和:Excel.Range range2 = sheet.get_Range("B25", Type.Missing);range2.Formula = "=SUM(B2:B24)";range2.Calculate();rang = (_Excel.Range)sheet.get_Range(string.Format("G{0}", 7), string.Format("G{0}", table.Rows.Count + 7));rang.NumberFormatLocal = "$#,##0.00"; //设置单元格格式为货币格式跨sheet求和:Excel.Worksheet wsheet1 = (Excel.Worksheet)excelSql.Worksheets.get_Item(1);Excel.Range range3 =wsheet1.get_Range("A23", Type.Missing);range3.Formula = "=Sheet3!B8+Sheet3!B12";range3.Calculate();sheet.Cells[1, 4] = ds.Tables[1].Rows[0]["FeightCode"].T oString();//给合并的列赋值//循环加载数据int startIndex = 0;for (int i = 0; i < ds.Tables[0].Rows.Count; i++){if (ds.Tables[1].Rows[j - 1]["BoxCode"].ToString() == ds.Tables[0].Rows[i]["BoxCode"].T oString()){range = sheet.get_Range("b" + (15 + startIndex) + "", "e" + (15 + startIndex) + "");range.MergeCells = true;sheet.Cells[15 + startIndex, 2] = ds.Tables[0].Rows[i]["TypeName"].T oString();range = (_Excel.Range)sheet.Cells[15 + startIndex, 2];range.HorizontalAlignment = XlHAlign.xlHAlignCenter;range.Font.Bold = true;range.RowHeight = 22;sheet.Cells[15 + startIndex, 6] = ds.Tables[0].Rows[i]["Qty"].T oString();range = (_Excel.Range)sheet.Cells[15 + startIndex, 6];range.HorizontalAlignment = XlHAlign.xlHAlignCenter;range.Font.Bold = true;range.RowHeight = 22;sheet.Cells[15 + startIndex, 7] = ds.Tables[0].Rows[i]["UnitPrice"].T oString();range = (_Excel.Range)sheet.Cells[15 + startIndex, 7];range.HorizontalAlignment = XlHAlign.xlHAlignCenter;range.Font.Bold = true;range.RowHeight = 22;sheet.Cells[15 + startIndex, 8] = ds.Tables[0].Rows[i]["Subtotal"].ToString();range = (_Excel.Range)sheet.Cells[15 + startIndex, 8];range.HorizontalAlignment = XlHAlign.xlHAlignCenter;range.Font.Bold = true;range.RowHeight = 22;Image image = Picture.ReadPicture(ds.Tables[0].Rows[row][col].ToString());range = sheet.get_Range(string.Format("A{0}", row * num + 29), string.Format("A{0}", row * num + 48));sheet.Shapes.AddPicture(ds.Tables[0].Rows[row][col].ToStrin g(), Microsoft.Office.Core.MsoTriState.msoFalse, Microsoft.Office.Core.MsoTriState.msoTrue,Convert.T oSingle(range.Left) + 15 + image.Width, Convert.T oSingle(range.Top) + 5, image.Width, image.Height); //插入图片range.EntireColumn.AutoFit();System.Windows.Forms.Application.DoEvents();startIndex++;}}[csharp] view plaincopyRange ran = (Range)sheet.Cells[1, 1];//Excel导出加下拉框ran.Validation.Add(XlDVType.xlValidateList, XlDVAlertStyle.xlValidAlertStop, XlFormatConditionOperator.xlBetween, "1,2,3", "123");ran.Validation.InCellDropdown = true;ran.Validation.IgnoreBlank = true;ran.Value2 = "2";rang = sheet.get_Range("a" + (table.Rows.Count + 3) + "", "r" + (table.Rows.Count + 3) + "");rang.Font.Bold = true;rang.Interior.Color = System.Drawing.Color.FromArgb(255, 204, 153).ToArgb();//设置单元格背景颜色sheet.Columns.AutoFit();sheet.Cells.EntireColumn.AutoFit();sheet.Columns.EntireColumn.AutoFit();//列宽自适应。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.ASP对Excel的基本操作(1) 建立Excel对象创建Excel对象可以通过下面的代码来实现:<%set objExcelApp = CreateObject("Excel.Application") objExcelApp.DisplayAlerts = false '不显示警告objExcelApp.Application = false '不显示界面%>(2) 新建Excel文件新建Excel文件可以通过以下代码来实现:<%objExcelApp.WorkBooks.addset objExcelBook = objExcelApp.ActiveWorkBookset objExcelSheets = objExcelBook.Worksheetsset objExcelSheet = objExcelBook.Sheets(1)%>(3) 读取已有的Excel文件读取已有的Excel文件可以通过下面的代码来实现<%strAddr = Server.MapPath(".")objExcelApp.WorkBooks.Open(strAddr & "TempletTable.xls") set objExcelBook = objExcelApp.ActiveWorkBookset objExcelSheets = objExcelBook.Worksheetsset objExcelSheet = objExcelBook.WorkSheets(1)%>(4) 另存Excel文件另存Excel文件可以通过以下代码来实现<%objExcelBook.SaveAs strAddr & "templateTables.xls"%>(5) 保存Excel文件保存Excel文件可以通过以下代码来实现:<%objExcelBook.Save%>(6) 退出Excel操作<%objExcelApp.Quit '一定要退出set objExcelApp = nothing%>2 读取Excel文件的实例<%set xlApp = server.CreateObject("Excel.Application")strsource = server.MapPath("xl.xls")set xlbook = xlApp.WorkBooks.Open(strsource)set xlsheet = xlbook.Worksheets(1)i = 1response.write "<table>"while xlsheet.cells(i,1) <> ""response.write "<tr>"response.write "<td>" & xlsheet.Cells(i,1) & "</td>"response.write "<td>" & xlsheet.Cells(i,2) & "</td>"response.write "<td>" & xlsheet.Cells(i,3) & "</td>"response.write "<tr>"i = i + 1wendresponse.write "</table>"set xlsheet = nothingset xlbook = nothingxlApp.quit'千万记住要加这一句,否则每运行一次你的机器里就增加一个Excel进程,而且无法释放'set xlApp = nothing 是不行的%>================================================================ 3.怎样将数据从Excel导入到SQL Server中(1)<%sub dataIntoSqlServer_ceritificate(strFileName,strSheetName,myConn)dim myConnectiondim strNamedim rsXsl,rsSqldim myConn_Xsldim cmddim i,jdim maxIdstrName = strFileNameset myConnection = Server.CreateObject("ADODB.Connection")set rsXsl = Server.CreateObject("ADODB.Recordset")set rsSql = Server.CreateObject("ADODB.Recordset")set cmd = server.CreateObject("mand")cmd.ActiveConnection = myConnmyConn_Xsl = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strName & _ ";Extended Properties=Excel 8.0"'打开连接myconnection.open myConn_Xsl'打开表str_Xsl = "select * from [" & strSheetName & "$]"rsXsl.open str_Xsl,myconnection,1,1j = 1Do while not rsXsl.eof'取出最大值str_sql = "select Max(id) as maxId from exceltosql"rsSql.open str_Sql,myConn,1,3if Not rsSql.eof thenif not isNull(rsSql("maxId")) thenmaxId=CLng(rsSql("maxId")) + 1elsemaxId = 1end ifelsemaxId = 1rsSql.close '//关闭对象'加入数据库str_Sql = "insert into exceltosql values(" & maxId&",'"&rsXsl(1)&"','" & rsXsl(2)&"')"mandText = str_Sqlcmd.Excute()''''''''''''''''''''''''''''''''''''''''''j = j + 1rsXsl.moveNextloopresponse.write "共导入" & j_1 & " 条记录.<br>"response.write "<a href=# onclick='self.close();'>关闭窗口</a>"set rsXsl = nothingset rsSql = nothingset myconnection = nothingset cmd = nothingend sub(2)'调用方法<%file1 = "c:\excelexample.xls"myconn = "DRIVER={SQLSERVER};SERVER=(local);uid=sa;pwd=sa;DATABASE=aspbook" dataIntoSqlServer_ceritificate file1,"sheet1",myconn%>=================================================================== ==========4.ASP操作Excel技术总结目录一、环境配置二、 ASP对Excel的基本操作三、 ASP操作Excel生成数据表四、 ASP操作Excel生成Chart图五、服务器端Excel文件浏览、下载、删除方案六、附录正文一、环境配置服务器端的环境配置从参考资料上看,微软系列的配置应该都行,即:1.Win9x+PWS+Office2.Win2000 Professional+PWS+Office3.Win2000 Server+IIS+Office目前笔者测试成功的环境是后二者。

Office的版本没有特殊要求,考虑到客户机配置的不确定性和下兼容特性,建议服务器端Office版本不要太高,以防止客户机下载后无法正确显示。

服务器端环境配置还有两个偶然的发现是:1.笔者开发机器上原来装有金山的WPS2002,结果Excel对象创建始终出现问题,卸载WPS2002后,错误消失。

2.笔者开发ASP代码喜欢用FrontPage,结果发现如果FrontPage打开(服务器端),对象创建出现不稳定现象,时而成功时而不成功。

扩展考察后发现,Office系列的软件如果在服务器端运行,则Excel对象的创建很难成功。

服务器端还必须要设置的一点是COM组件的操作权限。

在命令行键入“DCOMCNFG”,则进入COM组件配置界面,选择Microsoft Excel后点击属性按钮,将三个单选项一律选择自定义,编辑中将Everyone加入所有权限。

相关文档
最新文档