⑴ asp.net中如何实现excel文档的转换
asp.net Excel导入和导出1、Excel数据导入到数据库中://该方法实现从Excel中导出数据到DataSet中,其中filepath为Excel文件的绝对路径,sheetname为表示那个Excel表; public DataSet ExcelDataSource( string filepath , string sheetname ) …{ string strConn; strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filepath + ";Extended Properties=Excel 8.0;"; OleDbConnection conn = new OleDbConnection(strConn); OleDbDataAdapter oada = new OleDbDataAdapter ( "select * from [" + sheetname + "$]", strConn ); DataSet ds = new DataSet (); oada.Fill ( ds ); return ds ; }上面的代码实现了将Excel中的数据写进DataSet中,实现了这一步后,你可以按照自己的需要对获得DataSet进行处理,需要注意的一个问题是,你必须要指定sheetname,即Excel中的哪一个工作单需要导入,否则会出现错误。2、如何从Excel中获得工作单(sheetname)://获得Excel中的所有sheetname。public ArrayList ExcelSheetName ( string filepath )…{ ArrayList al = new ArrayList (); string strConn; strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filepath + ";Extended Properties=Excel 8.0;"; OleDbConnection conn = new OleDbConnection(strConn); conn.Open (); DataTable sheetNames = conn.GetOleDbSchemaTable (System.Data.OleDb.OleDbSchemaGuid.Tables,new object[]…{null,null,null,"TABLE"}); conn.Close (); foreach ( DataRow dr in sheetNames.Rows ) …{ al.Add ( dr[2] ); } return al;}通过这两步,就基本可以实现将Excel导入到数据库中了,具体实现中的细节问题,你可以自己在实践中获得。3、将数据库中的数据导入Excel中,在这里我讲叙自己实践中的两个方法:方法一:从最基本的写文件入手,将从数据库中读出来的数据写入到Excel中;//该方法实现将数据导入到Excel文件中,其中的DataTable dt就是你需要将数据写入到Excel中的数据;public void ExportExcel( DataTable dt , StreamWriter w )…{ try …{ for( int i = 0 ; i < dt.Columns.Count ; i ++ ) …{ w.Write ( dt.Columns[i] ); w.Write( ' ' ); } w.Write ( " " ); object[] values = new object [dt.Columns.Count]; foreach ( DataRow dr in dt.Rows ) …{ values = dr.ItemArray ; for ( int i = 0 ; i < dt.Columns.Count ; i++ ) …{ w.Write ( values[i] ); w.Write ( ' ' ); } w.Write ( " " ); } w.Flush(); w.Close(); } catch …{ w.Close(); }}StreamWriter w就是你自己创建的一个流,创建该数据流时,你需要自己指定需要将数据写入到那个文件,即指定文件路径,要实现下载的话,就可以简单的用Response.Redirect ( "指定需要被下载的文件路径" );方法二:该方法实现的是将数据从DataGrid中导入到Excel中://filename为Excel的名字,ToExcelGrid就是数据源,在此为DataGrid数据源;private void ExportExcelFromDataGrid( string filename , System.Web.UI.WebControls.DataGrid ToExcelGrid )…{ Response.Clear(); Response.Buffer= true; Response.Charset="utf-8"; Response.AppendHeader("Content-Disposition","attachment;filename="+Server.UrlEncode ( filename ) ); Response.ContentEncoding=System.Text.Encoding.GetEncoding("utf-8");//设置输出流为简体中文 Response.ContentType = "application/ms-excel";//设置输出文件类型为excel文件。 this.EnableViewState = false; System.Globalization.CultureInfo myCItrad = new System.Globalization.CultureInfo("ZH-CN",true); System.IO.StringWriter oStringWriter = new System.IO.StringWriter(myCItrad); System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter); ToExcelGrid.RenderControl(oHtmlTextWriter); Response.Write(oStringWriter.ToString()); Response.End();}用该方法的时候,需要注意将DataGrid数据源中的允许翻页,允许排 序设置成"false",同时一些特殊行进行需要将其设置成不可视,如编辑行等,若不这样的话,用该方法实现的数据导入到Excel,会出现异常“需要将 XXX放入到一个具有runat=server的form窗体中”,我具体忘了XXX代表的意思,你可以在实践中尝试一下,就可以知道出现的错误。3. .Net中导入Excel数据时应注意的事 从Excel向数据库导数据的时候,最常用的方式是使用Provider=Microsoft.Jet.OLEDB.4.0; Data Source=D:"Demo.xls; Extended Properties='Excel 8.0;HDR=YES;IMEX=1'。 但 是当一列中既有数字,又有文本的时候,总是莫名其妙的出现部分数据读不到的现象,有时是读不到文本数据,有时是读不到数字数据。这是为什么呢?原来 OleDb会智能的根据前8行的数据判断Excel的列类型,当文本数据的行数 > 数字数据的行数时,列类型被设为文本,否则为数字。那我想读到全部的数据该做些什么呢?这位同学问得好,秘密就在于IMEX=1,以导入模式读取数据。
⑵ net如何读取客户端Excel文件
是使用过抄oledb的方式string connExcel;connExcel = string.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties=\"Excel 8.0;HDR=Yes;IMEX=1\";", this.ExcelFilePhysicalPath);OleDbConnection oleConn = new OleDbConnection(connExcel);然后可以通过TSQL来查询等不过表面得为[sheet名$]后边得加个$
⑶ ASP.NET操作Excel
public bool panan() { for (int i = 0; i < ds.Tables[0].Columns; i++) { if (ds.Tables[1].Columns[i].ToString() != "aaa") { continue; } else { return true; } return false; } }
⑷ .NET 导出 Excel文件
有2种方法哈,可以利用oledb进行操作,此方法主要是针对表格形式的excel比较适用。此时,每一个sheet都是一个datatable。string strConn;strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filePath + ";Extended Properties='Excel 8.0;HDR=False;IMEX=1'";OleDbConnection OleConn = new OleDbConnection(strConn);OleConn.Open();String sql = "insert[Sheet1$] (1,2,3) values (a,b,c) ";OleDbCommand cmd = new OleDbCommand();cmd.ExecuteNonQuery();还有就是利用office自己提供的dll进行操作。Workbook wBook = app.Workbooks.Add(true);Worksheet wSheet = wBook.Worksheets[1] as Worksheet;
⑸ .net关于操作excel的问题
//———设置背景颜色 objectSheet.get_Range(objectSheet.Cells[RowIndex,ColumnIndex],objectSheet.Cells[RowIndex,ColumnIndex]).Cells.Interior.Color =Color; //—设置字体颜色 objectSheet.get_Range(objectSheet.Cells[RowIndex,ColumnIndex],objectSheet.Cells[RowIndex,ColumnIndex]).Font.Color = Color; //—-设置字体大小 objectSheet.get_Range(objectSheet.Cells[RowIndex,ColumnIndex],objectSheet.Cells[RowIndex,ColumnIndex]).Font.Size = Size;请采纳。
⑹ Vb.net 操作Excel如何选择sheet
具体操作如下:首先,须在项目里引用: 添加引用->Com->Microsoft Excel 9.0 Object Library (这是EXCEL2000)1 打开Excel: dim myexcel as new Excel.Application() myexcel.visible=true2 添加新的工作簿: myexcel.Workbooks.add()3 设定第二个工作表为活动工作表: myexcel.worksheets(2).Acivate()4 打开指定的Excel文件: myexcel.workbooks.open("c:\my.xls")5 显示Excel窗口: myexcel.visible=true6 更改Excel的标题栏: myexcel.caption="欢迎,欢迎!"7 为Excel的单元格赋值: myexcel.cells(1,4).value=100 此语句使Excel当前工作表的第一行第四列,即D1单元格等于100, 也可以这样写: myexcel.Range("D1").value=1008 设置指定列的宽度(单位:字符个数): myexcel.ActiveSheet.colums(1).columnwidth=20 设定当前工作表第1列的宽度为209 设置指定行的高度(单位:磅): myexcel.ActiveSheet.rows(1).rowHeight=1/0.035 1磅 =0.035厘米 设置第1行的高度为1CM10 插入分页符: myexcel.Activesheet.rows(20).pagebreak=1 在第20行前插入分页符11 删除分页符: myexcel.Activesheet.columns(20).pagebreak=0 在第20列前删除分页符12 指定边框线的宽度: myexcel.Activesheet.range("B3:D3").borders(1).weight=3 其中borders参数指定单元格边框的位置: 1:左 2:右 3:顶 4:底 5:斜\ 6:斜/13 指定边框线条的类型: myexcel.Activesheet.range("B1:D3").borders(2).linestyle=1 此语句将当前工作表的B1:D3单元格的右边框设置为实线 linestyle参数: 1:细实线 2:细虚线 3:点虚线 4:双细实线14 设置页脚: myexcel.activesheet.pagesetup.centerfooter="第&p页" 注意:设置页眉页脚时要保证计算机上装有打印机,否则出错!15 设置页眉: myexcel.activesheet.pagesetup.centerfooter="第&p页"16 设置页眉到顶断距离为2cm: myexcel.Activesheet.pagesetup.Headermargin=2/0.03517 设置页脚到底端距离为2cm: myexcel.Activesheet.pagesetup.Footermargin=2/0.03518 设置顶边边距为2cm: myexcel.Activesheet.pagesetup.topmargin=2/0.03519 设置底边边距为2cm: myexcel.Activesheet.pagesetup.Bottommargin=2/0.03520 设置左边边距为2cm: myexcel.Activesheet.pagesetup.Leftmargin=2/0.03521 设置右边边距为2cm: myexcel.Activesheet.pagesetup.Rightmargin=2/0.03522 设置页面水平居中: myexcel.activesheet.pagesetup.CenterHorizontally=true23 设置页面垂直居中: myexcel.activesheet.pagesetup.Centervertically=true24 设置页面纸张大小 (1,窄行 8.5*11 ;39 ,宽行 14*11): myexcel.activesheet.pagesetup.papersize=125 打印单元格网格线: myexcel.activesheet.pagesetup.PrintGridlines=true26 复制整个工作表 : myexcel.activesheet.Usedrange.Copy27 复制指定区域 : myexcel.activesheet.range("a1:b5").Copy28 粘贴: myexcel.worksheets("sheet2").range("A1").PasteSpecial29 在第2行前插入一行 : myexcel.activesheet.rows(2).Insert30 在第2列前插入一列 : myexcel.Activesheet.Columns(2).Insert31 合并 C4:D4 单元格: myexcel.Activesheet.Range("C4:D4").Merge()32 自动调整第2列列宽: myexcel.activesheet.Columns(2).AutoFit33 设置字体: myexcel.Activesheet.cells(2,1).font.name="黑体"34 设置字体大小: myexcel.Activesheet.cells(2,1).font.size=2535 设置字体为斜体: myexcel.Activesheet.cells(2,1).font.Italic=true36 设置字体为粗体: myexcel.Activesheet.cells(2,1).font.Bold=true37 清除单元格内容: myexcel.activesheet.cells(2,1).ClearContents38 打印预览工作表: myexcel.Activesheet.PrintPreview39 打印工作表: myexcel.Activesheet.Printout40 工作表另存为: myexcel.ActiveWorkbook.saveas("C:\book2.xls")41 放弃存盘: myexcel.ActiveWorkbook.saved=false42 关闭工作簿: myexcel.Workbooks.close43 退出 Excel: myexcel.quit清楚了这些命令,操作excel不就变的很轻松了。