将数据库表导出到Excel.doc_第1页
将数据库表导出到Excel.doc_第2页
将数据库表导出到Excel.doc_第3页
将数据库表导出到Excel.doc_第4页
将数据库表导出到Excel.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

将数据库表导出到Excel,并生成文件(C#实现)关键词: C#, ASP.NET, Excel 需添加项目引用:1. .NET-System.Data.OracleClient.dll2. COM-Microsoft Excel 11.0 Object Library代码如下:using System;using System.IO;using System.Data;using System.Reflection;using System.Diagnostics;using System.Configuration;using System.Collections;using Excel;namespace ProtoType/ / 套用模板输出Excel,生成xls文件和html文件/ Author: Liu Wen/ Date Created: 2006-8/ public class ExportExcel#region variable memberprotected string templateFile = null;protected string excelFile = null;protected string htmlFile = null;protected object missing = Missing.Value;Excel.ApplicationClass app;Excel.Workbook book;Excel.Worksheet sheet;Excel.Range range;private DateTime beforeTime;/Excel启动之前时间private DateTime afterTime;/Excel启动之后时间#endregion/ / 构造函数,将一个已有Excel工作簿作为模板,并指定输出路径/ / Excel模板文件路径 / Excel输出文件路径 / Html输出文件路径 public ExportExcel(string templateFile, string excelFile, string htmlFile)if(templateFile = null)throw new Exception(Excel模板文件路径不能为空!);if(excelFile = null)throw new Exception(Excel输出文件路径不能为空!);if(htmlFile = null)throw new Exception(Html输出文件路径不能为空!);if(!File.Exists(templateFile)throw new Exception(指定路径的Excel模板文件不存在!);this.templateFile = templateFile;this.excelFile = excelFile;this.htmlFile = htmlFile;/创建一个Application对象beforeTime = DateTime.Now;app = new ApplicationClass();/app.Visible = true;afterTime = DateTime.Now;/打开模板文件,得到WorkBook对象trybook = app.Workbooks.Open(templateFile,missing,missing,missing,missing,missing,missing,missing,missing,missing,missing,missing,missing,missing,missing);catch (Exception e)throw e;/得到WorkSheet对象sheet = (Excel.Worksheet)book.Sheets.get_Item(1);/ / 将DataTable数据导出到Excel(可动态插入行)/ / DataTable / 插入行的索引 / 插入列的索引 public void DataTableToExcel(System.Data.DataTable dt, int rowIndex, int colIndex)/range = sheet.get_Range(A7, missing);/range.Value2 = raogerrr;/string str = range.Text.ToString();int rowCount = dt.Rows.Count;/DataTable行数int colCount = dt.Columns.Count;/DataTable列数int iRow;int iCol;/将数据导出到相应的单元格for (iRow = 0; iRow rowCount; iRow+)/插入新行this.InsertRows(sheet, iRow+rowIndex);/填充当前行for (iCol = 0; iCol colCount; iCol+)sheet.CellsiRow+rowIndex, iCol+colIndex = dt.RowsiRowiCol.ToString();this.DeleteRows(sheet, rowCount+rowIndex);/Excel.QueryTables qts = sheet.QueryTables;/Excel.QueryTable qt = qts.Add(,);/qt.RefreshStyle = Excel.XlCellInsertionMode.xlInsertEntireRows;/qt.Refresh();/ / 将DataTable数据导出到Excel(可动态插入行)/ / DataTable / 插入数据的起始单元格 public void DataTableToExcel(System.Data.DataTable dt, string cellID)int rowIndex = sheet.get_Range(cellID, missing).Row;int colIndex = sheet.get_Range(cellID, missing).Column;int rowCount = dt.Rows.Count;/DataTable行数int colCount = dt.Columns.Count;/DataTable列数int iRow;int iCol;/利用二维数组批量写入string, array = new stringrowCount,colCount; for (iRow = 0; iRow rowCount; iRow+)for (iCol = 0; iCol colCount; iCol+)arrayiRow,iCol = dt.RowsiRowiCol.ToString();for (iRow = 0; iRow rowCount; iRow+)this.InsertRows(sheet, iRow+rowIndex);this.DeleteRows(sheet, rowCount+rowIndex);range = sheet.get_Range(cellID, missing);range = range.get_Resize(rowCount, colCount);range.Value2 = array;/ / 将DataTable数据导出到Excel(固定)/ / DataTable / 插入数据的起始单元格 public void DataTableToExcel2(System.Data.DataTable dt, string cellID)int rowCount = dt.Rows.Count;/DataTable行数int colCount = dt.Columns.Count;/DataTable列数int

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论