C#操作Excel
文章平均质量分 67
张家可
明天不一定会更好,但更好的明天一定会到来!
展开
-
Excel.Range range中的设置如font.Merge等
Excel.Range range; range = (Excel.Range)oSheets.Rows[5,missing];//獲取行。 range.Insert(Excel.XlInsertShiftDirection.xlShiftDown,missing);//在此行前插入行。 range = (Excel.Range)oSheets.Rows[5,miss原创 2013-01-17 12:57:57 · 1533 阅读 · 0 评论 -
向指定文本框写入数据,对每个WorkSheet操作
/// /// 向指定文本框写入数据,对每个WorkSheet操作 /// /// 文本框名称 /// 要写入的文本 public void SetTextBox(string textboxName,string text) { for(int i=1;i { workSheet = (Excel.Worksheet)workBook.Worksheets.get_原创 2013-01-17 12:58:34 · 790 阅读 · 0 评论 -
将一个工作表拷贝到另一个工作表后面
/// /// 将一个工作表拷贝到另一个工作表后面,并重命名 /// /// 拷贝源工作表索引 /// 参照位置工作表索引,新工作表拷贝在该工作表后面 /// public void CopyWorkSheet(int srcSheetIndex,int aimSheetIndex,string newSheetName) { if(srcSheetIndex > this原创 2013-01-17 12:58:30 · 2958 阅读 · 0 评论 -
MergeRows将指定索引列的数据相同的行合并
/// /// 将指定索引列的数据相同的行合并,对指定WorkSheet操作 /// /// 要合并的列索引 /// 合并开始行索引 /// 要合并的行数 private void MergeRows(Excel.Worksheet sheet,int columnIndex,int beginRowIndex,int rows) { int beginIndex = beg原创 2013-01-17 12:58:18 · 864 阅读 · 0 评论 -
数据写入Excel文件自动分页,并指定要合并的列索引
/// /// 将DataTable数据写入Excel文件(自动分页,并指定要合并的列索引) /// /// DataTable /// 每个WorkSheet写入多少行数据 /// 表格数据起始行索引 /// 表格数据起始列索引 /// DataTable中要合并相同行的列索引,从0开始 public void DataTableToExcel(DataTable dt,in原创 2013-01-17 12:58:16 · 975 阅读 · 0 评论 -
将DataTable数据写入Excel文件(自动分页)
#region Data Export Methods /// /// 将DataTable数据写入Excel文件(自动分页) /// /// DataTable /// 每个WorkSheet写入多少行数据 /// 表格数据起始行索引 /// 表格数据起始列索引 public void DataTableToExcel(DataTable dt,int rows,int原创 2013-01-17 12:58:12 · 694 阅读 · 0 评论 -
新建一个工作簿
/// /// 构造函数,新建一个工作簿 /// public ExcelHelper() { //创建一个Application对象并使其可见 beforeTime = DateTime.Now; app = new Excel.ApplicationClass(); app.Visible = true; afterTime = DateTime.Now;原创 2013-01-17 12:58:10 · 469 阅读 · 0 评论 -
C#操作Excel(一)头部分
using System;using System.IO;using System.Text;using System.Data;using System.Reflection;using System.Diagnostics;using System.Collections; //using cfg = System.Configuration; namespace GDBI.Common{原创 2013-01-17 12:58:03 · 400 阅读 · 0 评论 -
整体操作Excel
首先的一步就是使用Tlbimp这个工具将Excel9.0的对象库文件Excel8.olb转换成为dll,这样才能做为.Net平台Assembly来使用:)操作如下: TlbImp Excel9.olb Excel.dll 只要有了这个Excel.dll,现在我们就能使用Excel的各种操作函数了。下面就让我们具体看看C#是如何使用这些东东吧。 1. 创建一个新Excel的Applicatio原创 2013-01-17 12:58:01 · 274 阅读 · 0 评论 -
合并单元格,并赋值
/// /// 合并单元格,并赋值,对每个WorkSheet操作 /// /// 开始行索引 /// 开始列索引 /// 结束行索引 /// 结束列索引 /// 合并后Range的值 public void MergeCells(int beginRowIndex,int beginColumnIndex,int endRowIndex,int endColumnIndex,s原创 2013-01-17 12:58:40 · 3739 阅读 · 0 评论 -
插行
/// /// 插行(在指定行上面插入指定数量行) /// /// /// public void InsertRows(int rowIndex,int count) { try { for(int n=1;n { workSheet = (Excel.Worksheet)workBook.Worksheets[n]; range = (E原创 2013-01-17 12:58:44 · 262 阅读 · 0 评论 -
C# 操作Excel的类
[原创]C# 操作Excel的类 最近领导要求把一些数导入Excel生成报表, 工作本来是要手动完成的,但咱是做程序的, 应该想一切办法让程序来代替我们完成任务, 于是写了一个操作Excel的程序, 现将代码公布, 希望对读本文的朋友有所帮助http://xingfustar.cnblogs.com代码写的不好,请多原谅, 目的与大家多交流学习,有什么问题,欢迎指出.http://xingfu原创 2013-01-17 12:59:27 · 488 阅读 · 0 评论 -
计算WorkSheet数量
/// /// 计算WorkSheet数量 /// /// 记录总行数 /// 每WorkSheet行数 public int GetSheetCount(int rowCount,int rows) { int n = rowCount % rows; //余数 if(n == 0) return rowCount / rows; else retu原创 2013-01-17 12:59:11 · 713 阅读 · 0 评论 -
将Excel列的字母索引值转换成整数索引值
#region ExcelHelper Kit /// /// 将Excel列的字母索引值转换成整数索引值 /// /// /// public int LetterToInt(string letter) { int n = 0; if(letter.Trim().Length == 0) throw new Exception("不接受空字符串!");原创 2013-01-17 12:59:05 · 987 阅读 · 0 评论 -
自动填充
/// /// 自动填充 /// public void RangAutoFill() { Excel.Range rng = workSheet.get_Range("B4", Type.Missing); rng.Value2 = "星期一 "; rng.AutoFill(workSheet.get_Range("B4","B9"), Excel.XlAutoFi原创 2013-01-17 12:58:59 · 450 阅读 · 0 评论 -
将指定范围区域拷贝到目标区域
/// /// 将指定范围区域拷贝到目标区域 /// /// WorkSheet索引 /// 要拷贝区域的开始Cell位置(比如:A10) /// 要拷贝区域的结束Cell位置(比如:F20) /// 目标区域的开始Cell位置(比如:H10) public void RangeCopy(int sheetIndex,string startCell,string endCell原创 2013-01-17 12:58:57 · 1311 阅读 · 0 评论 -
删除列
/// 删除列 /// /// /// public void DeleteColumns(int columnIndex,int count) { try { for(int n=1;n { workSheet = (Excel.Worksheet)workBook.Worksheets[n]; range = (Excel.Range)wor原创 2013-01-17 12:58:55 · 852 阅读 · 0 评论 -
ntToLetter将Excel列的整数索引值转换为字符索引值
/// /// 将Excel列的整数索引值转换为字符索引值 /// /// /// public string IntToLetter(int n) { if(n > 256) throw new Exception("索引超出范围,Excel的列索引不能超过256!"); int i = Convert.ToInt32(n / 26); int j原创 2013-01-17 12:58:52 · 520 阅读 · 0 评论 -
复制行
/// /// 复制行(在指定行下面复制指定数量行) /// /// /// public void CopyRows(int rowIndex,int count) { try { for(int n=1;n { workSheet = (Excel.Worksheet)workBook.Worksheets[n]; range1 = (E原创 2013-01-17 12:58:46 · 345 阅读 · 0 评论 -
使用C#和Excel进行报表开发(二)-操作统计图
使用C#和Excel进行报表开发(二)-操作统计图(Chart)下面的代码使用一个现有的统计图Excel文件,加载这个文件,设置某一项的值和统计图的表示方式,然后保存到另一个Excel文件里。如果是VS2005+Office2003,也可以选择使用Visual Studio Tools for Office来作。 Excel.Application m_objExcel = null; Exc原创 2013-01-17 12:59:20 · 747 阅读 · 0 评论 -
将Excel应用于报表开发中(一)--开始
将Excel应用于报表开发中(一)--开始 目前的商业工具如水晶报表,ActiveReport等,都提供了灵活,强大的功能,但是对于比较特殊化的表格,特别是国内的一些应用,都是一个个的格子组成的,这样要是用线来一根根画就比较麻烦,但是这类工具还都不提供表格化的报表布局定义方式。一个很好的选择是VS2005的客户端报表(RDLC),但是在某几个方面还是不够灵活,例如,灵活性有限制,要想自己编码实现原创 2013-01-17 12:59:18 · 296 阅读 · 0 评论 -
向单元格写入数据,对当前WorkSheet操作
/// /// 向单元格写入数据,对当前WorkSheet操作 /// /// 行索引 /// 列索引 /// 要写入的文本值 public void SetCells(int rowIndex,int columnIndex,string text) { try { workSheet.Cells[rowIndex,columnIndex] = text; }原创 2013-01-17 12:58:36 · 1935 阅读 · 0 评论 -
根据名称或索引删除工作表
/// /// 根据名称删除工作表 /// /// public void DeleteWorkSheet(string sheetName) { try { Excel.Worksheet sheet = null; //找到名称位sheetName的工作表 for(int i=1;i { workSheet = (Excel.Work原创 2013-01-17 12:58:32 · 541 阅读 · 0 评论 -
指定名称的工作表后面拷贝N个该工作表的副本
/// /// 在指定名称的工作表后面拷贝指定个数的该工作表的副本,并重命名 /// /// 工作表名称 /// 工作表个数 public void CopyWorkSheets(string sheetName,int sheetCount) { try { Excel.Worksheet sheet = null; int sheetIndex = 0;原创 2013-01-17 12:58:27 · 503 阅读 · 0 评论 -
改变当前工作表,隐藏指定的工作表
/// /// 改变当前工作表 /// /// 工作表索引 public void ChangeCurrentWorkSheet(int sheetIndex) { //若指定工作表索引超出范围,则不改变当前工作表 if(sheetIndex return; if(sheetIndex > this.WorkSheetCount) return;原创 2013-01-17 12:58:25 · 535 阅读 · 0 评论 -
将DataTable数据写入Excel文件(不分页)
/// /// 将DataTable数据写入Excel文件(不分页) /// /// DataTable /// 表格数据起始行索引 /// 表格数据起始列索引 public void DataTableToExcel(DataTable dt,int top,int left) { int rowCount = dt.Rows.Count; //DataTable行数原创 2013-01-17 12:58:14 · 514 阅读 · 0 评论 -
打开一个已有的工作簿
/// /// 构造函数,打开一个已有的工作簿 /// /// Excel文件名 public ExcelHelper(string fileName) { if(!File.Exists(fileName)) throw new Exception("指定路径的Excel文件不存在!"); //创建一个Application对象并使其可见 beforeTime原创 2013-01-17 12:58:08 · 308 阅读 · 0 评论 -
将一个已有Excel工作簿作为模板,并指定输出路径
#region 公共方法 #region ExcelHelper /// /// 构造函数,将一个已有Excel工作簿作为模板,并指定输出路径 /// /// Excel模板文件路径 /// 输出Excel文件路径 public ExcelHelper(string templetFilePath,string outputFilePath) { if(templetF原创 2013-01-17 12:58:06 · 912 阅读 · 0 评论 -
设置打印Excel
//以下操作Excel的頁首,這個大家用的比較少吧,是列印是需要的。 oSheets =(Excel.Worksheet) oBook.Worksheets[1]; oSheets.PageSetup.PrintTitleRows = ""; oSheets.PageSetup.PrintTitleColumns = ""; oSheets.PageSetup.PrintA原创 2013-01-17 12:57:59 · 334 阅读 · 0 评论 -
设置单元格为可计算的
/// /// 设置单元格为可计算的 /// /// /// 如果Excel的单元格格式设置为数字,日期或者其他类型时,需要设置这些单元格的FormulaR1C1属性, /// 否则写到这些单元格的数据将不会按照预先设定的格式显示 /// /// 保存单元格的位置索引(行索引和列索引用“,”隔开)和数据 public void SetCells(int sheetIndex原创 2013-01-17 12:58:38 · 724 阅读 · 0 评论 -
将指定索引列的数据相同的行合并
/// /// 将指定索引列的数据相同的行合并,对每个WorkSheet操作 /// /// 列索引 /// 开始行索引 /// 结束行索引 public void MergeRows(int columnIndex,int beginRowIndex,int endRowIndex) { if(endRowIndex - beginRowIndex return;原创 2013-01-17 12:58:42 · 461 阅读 · 0 评论 -
ExcelN多属性设置
(一) 使用动态创建的方法 首先创建 Excel 对象,使用ComObj: var ExcelApp: Variant; ExcelApp := CreateOleObject( 'Excel.Application' ); 1) 显示当前窗口: ExcelApp.Visible := True;原创 2013-01-17 12:59:16 · 826 阅读 · 0 评论 -
结束Excel进程
/// /// 结束Excel进程 /// public void KillExcelProcess() { Process[] myProcesses; DateTime startTime; myProcesses = Process.GetProcessesByName("Excel"); //得不到Excel进程ID,暂时只能判断进程启动时间 forea原创 2013-01-17 12:59:14 · 726 阅读 · 0 评论 -
保存,将Excel文件另存为指定格式
/// /// 保存文件 /// public void SaveFile() { try { workBook.Save(); } catch(Exception e) { throw e; } finally { this.Dispose(); } } /// /// 另存文件 /// public vo原创 2013-01-17 12:59:09 · 1717 阅读 · 0 评论 -
输出指定格式的文件(支持格式:HTML,CSV,TEXT,E
/// /// 输出Excel文件并退出 /// public void OutputExcelFile() { if(this.outputFile == null) throw new Exception("没有指定输出文件路径!"); try { workBook.SaveAs(outputFile,missing,missing,missing,mi原创 2013-01-17 12:59:07 · 1370 阅读 · 0 评论 -
应用样式
/// /// 应用样式 /// public void ApplyStyle() { object missingValue = Type.Missing; Excel.Range rng = workSheet.get_Range("B3","L23"); Excel.Style style; try { style = workBook.Styles原创 2013-01-17 12:59:03 · 335 阅读 · 0 评论 -
删除行
/// /// 删除行 /// /// /// public void DeleteRows(int rowIndex,int count) { try { for(int n=1;n { workSheet = (Excel.Worksheet)workBook.Worksheets[n]; range = (Excel.Range)wor原创 2013-01-17 12:59:01 · 386 阅读 · 0 评论 -
复制列
/// /// 复制列(在指定列右边复制指定数量列) /// /// /// public void CopyColumns(int columnIndex,int count) { try { for(int n=1;n { workSheet = (Excel.Worksheet)workBook.Worksheets[n];// ran原创 2013-01-17 12:58:50 · 311 阅读 · 0 评论 -
插列
/// /// 插列(在指定列右边插入指定数量列) /// /// /// public void InsertColumns(int columnIndex,int count) { try { for(int n=1;n { workSheet = (Excel.Worksheet)workBook.Worksheets[n]; rang原创 2013-01-17 12:58:48 · 261 阅读 · 0 评论 -
C# 操作Excel的类(接上一篇)
太长了,接上一篇: /// /// 合并单元格 /// /// 起始行 /// 起始列 /// 结束行 /// 结束列 public void CellsUnite(int startRow, int startColumn, int endRow, int endColumn)原创 2013-01-17 12:59:29 · 365 阅读 · 0 评论