以下是网上找到一些关于excel操作的资源可通过链接查看http://www.soaspx.com/dotnet/csharp/csharp_20091125_1762.html

1.首先需要引入Excel的Com组件,Microsoft Excel 11.0 Object Library 1.5(该组件版本为office2003)

添加该引用后在解决方案的引用文件夹里会有Excel和Microsoft.Office.Core两个引用。

2.我们要对Excel文档进行操作首先需要对Excel文档的结构有一个了解。一个Excel文档包含若干个sheet,每个sheet里又有若干个单元格。也就是说Excel文档是一个三层结构的实体:book文档对象àsheet对象à单元格对象。

在C#里相应的提供了这三个对象的操作类

ApplicationClass==Excel操作对象

ApplicationClass ExcelApp = null;定义了一个Excel操作对象,与具体文档无关

_Workbook == book对象

_Workbook wBook = null;定义了一个book对象

_Workbook  sheet = null;定义了一个sheet对象

Microsoft.Office.Interop.Excel.Range == 单元格对象(Renge提供了一组对单元格的操作接口

Microsoft.Office.Interop.Excel.Range rangeSheet = null;定义了一个单元格操作对象。

明白了Excel的结构和C#中提供的对应的操作类或接口,对我们理解用程序实现Excel的各种操作很有帮助。至少当需要在Excel的哪个级别上操作时,你知道该在哪个类里去找相应的方法。

3.C#对Excel文档操作的函数及功能

ExcelApp = new ApplicationClass();实例化一个Excel操作对象

ExcelApp.Visible = false;让其不可见(一般在写的时候设置这个属性,写完后更改为true就可以展现在用户面前)

wBook = ExcelApp.Workbooks._Open(modelPath, Type.Missing, Type.Missing, Type.Missing,Type.Missing,Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing,Type.Missing, Type.Missing, Type.Missing);用Excel操作对象去打开一个Excel文档实体(wBook)这里主要一个参数就是modelPath表示文档所在路径

_Workbook  sheet1 = (Worksheet)wBook.Sheets[1];获得wBook里的第一个sheet

 

rangeSheet=sheet1.get_Range(sheet1.Cells[rowIndex,colIndex],sheet1.Cells[rowIndex,colIndex]);sheet通过调用get_Range函数获得单元格的选定范围,它是对Excel操作最主要的一个对象,因为我们对Excel的操作实际上就是对单元格的操作。所以获得了操作单元格对象就可以实现我们想要的任何操作比如

rangeSheet.Merge(this. rangeSheet.MergeCells);如果不是对一个单元格操作,即单元格的选定的是一个范围,可以用此函数实现合并单元格

rangeSheet.HorizontalAlignment=Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignLeft;设置单元格内容的对齐方式

rangeSheet.Value2通过Value2属性给选定的单元格赋值

rangeSheet.Font.Name = "宋体";字体的设置

rangeSheet.Font.Size = 10;字体大小

rangeSheet.Font.Bold = true;字体加粗

 

 

//绘制所选单元格范围内的线条类型,3为虚线,1为实线

RangeSheet.Borders.LineStyle = 3;

//绘制所选单元格范围内上下左右边框为连续的实线

RangeSheet.Borders.get_Item(XlBordersIndex.xlEdgeTop).LineStyle = Microsoft.Office.Interop.Excel.XlLineStyle.xlContinuous;

RangeSheet.Borders.get_Item(XlBordersIndex.xlEdgeBottom).LineStyle = Microsoft.Office.Interop.Excel.XlLineStyle.xlContinuous;

RangeSheet.Borders.get_Item(XlBordersIndex.xlEdgeRight).LineStyle = Microsoft.Office.Interop.Excel.XlLineStyle.xlContinuous;

RangeSheet.Borders.get_Item(XlBordersIndex.xlEdgeLeft).LineStyle = Microsoft.Office.Interop.Excel.XlLineStyle.xlContinuous; 

//选定范围内的对齐方式

RangeSheet.HorizontalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignCenter;

 

以下是网上找到一些关于excel操作的资源可通过链接查看http://www.soaspx.com/dotnet/csharp/csharp_20091125_1762.html

[c-sharp]  view plain copy
  1. using System;   
  2. using System.Collections.Generic;   
  3. using System.Text;   
  4. using System.Windows.Forms;   
  5. // 引入OFFICE EXCEL命名空间   
  6. using Excel = Microsoft.Office.Interop.Excel;   
  7. using System.Reflection;   
  8. using System.Data;   
  9. using System.IO;   
  10. using System.Diagnostics;   
  11. using System.Collections;   
  12. using System.Runtime.InteropServices;   
  13.   
  14. namespace TestLib   
  15. {   
  16.     public class ExcelOperation   
  17.     {   
  18.         private DateTime beforeTime; //Excel启动之前时间   
  19.         private DateTime afterTime; //Excel启动之后时间   
  20.         Excel.Application myExcel = new Excel.Application();   
  21.         Excel.Workbook myBook;   
  22.         Excel.Worksheet mySheet1;   
  23.         Excel.Range range;   
  24.         Excel.Range range1;   
  25.         Excel.Range range2;   
  26.         Excel.TextBox textBox;   
  27.         public  int sheetCount = 1; //WorkSheet数量   
  28.         private string sheetPrefixName = "页";   
  29.  
  30.          
  31.         #region 公共属性   
  32.         /// <summary>   
  33.         /// WorkSheet前缀名,比如:前缀名为“页”,那么WorkSheet名称依次为“页-1,页-2”   
  34.         /// </summary>   
  35.         public string SheetPrefixName   
  36.         {   
  37.             set { this.sheetPrefixName = value; }   
  38.         }   
  39.   
  40.         /// <summary>   
  41.         /// WorkSheet数量   
  42.         /// </summary>   
  43.         public int WorkSheetCount   
  44.         {   
  45.             get { return myBook.Sheets.Count; }   
  46.         }   
  47.  
  48.         #endregion   
  49.         public  ExcelOperation()   
  50.         {   
  51.         }   
  52.   
  53.         public  void InitExcel()      //先初始化   
  54.         {   
  55.           // Excel.Application myExcel = new Excel.Application();   
  56.             if (myExcel == null)   
  57.             {   
  58.                 MessageBox.Show("无法创建Excel对象,可能您的电脑未安装Excel!");   
  59.                   
  60.             }   
  61.             MessageBox.Show("初始化成功""提示");   
  62.             myExcel.Quit();   
  63.             GC.Collect();   
  64.             return;   
  65.             
  66.           }   
  67.         public void CreateReport(  )  //建立文档//此时的Excel表格是一个空的表格,没有任何内容   
  68.         {   
  69.             // 2.创建文档   
  70.             // strTemplate:模板文档全名   
  71.             // sheetCount:创建文档所需要的页数   
  72.             
  73.             //myExcel.Application.Workbooks.Add(true);//引用工作薄   
  74.             myBook = myExcel.Workbooks.Add(Missing.Value);   
  75.             mySheet1 = (Excel.Worksheet)myBook.Worksheets[1];   
  76.             mySheet1 = (Excel.Worksheet)myExcel.ActiveSheet;// 获取当前工作表   
  77.             myExcel.Visible = true;//使Excel可视   
  78.             myExcel.DisplayAlerts = true;   
  79.         }   
  80.         public void  SetTitle(/*string  TitString*/)        //设置报表头   
  81.         {   
  82.             range = mySheet1.get_Range("A6""D6");// 获取多个单元格   
  83.             range.Merge(Missing.Value);        // 合并单元格   
  84.             range.Columns.AutoFit();            // 设置列宽为自动适应   
  85.             range.NumberFormatLocal = "#,##0.00";// 设置单元格格式为货币格式   
  86.   
  87.             range.RowHeight = 20;          // 设置行高   
  88.             range.ColumnWidth = 20;        // 设置列宽   
  89.             range.Borders.LineStyle = 1;    // 设置单元格边框   
  90.             range.Font.Bold = true;        // 加粗字体   
  91.             range.Font.Size = 20;          // 设置字体大小   
  92.             range.Font.ColorIndex = 5;      // 设置字体颜色   
  93.             range.Interior.ColorIndex = 6;  // 设置单元格背景色   
  94.   
  95.             // 设置单元格左边框加粗   
  96.             //range.Borders[XlBordersIndex.xlEdgeLeft].Weight = XlBorderWeight.xlThick;   
  97.             // 设置单元格右边框加粗   
  98.             //range.Borders[XlBordersIndex.xlEdgeRight].Weight = XlBorderWeight.xlThick;   
  99.             range.Value2 = "合并单元格";            
  100.         }   
  101.         public void SetContent()      //设置内容   
  102.         {   
  103.             //在命名空间"Excel"中,还定义了一个类"Cell",这个类所代表的就是Excel表格中的一个单元格。通过给"Cell"赋值,从而实现往Excel表格中输入相应的数据   
  104.           //Excel.Application excel = new Excel.Application () ;   
  105.           //excel.Application.Workbooks.Add(true);   
  106.           //excel.Cells[ 5 , 5 ] ="First Row First Column";   
  107.           //excel.Cells[ 5 , 6 ] ="First Row Second Column";   
  108.           //excel.Cells[ 6 , 5 ] ="Second Row First Column";   
  109.           //excel.Cells[ 5 , 5 ] ="Second Row Second Column";   
  110.           //excel.Visible = true ;   
  111.             range = mySheet1.get_Range("A1", Missing.Value);// 获取单个单元格   
  112.             range.Columns.AutoFit();   
  113.             range.RowHeight = 20;          // 设置行高   
  114.             range.ColumnWidth = 20;        // 设置列宽   
  115.             range.Borders.LineStyle = 1;    // 设置单元格边框   
  116.             range.Font.Bold = true;        // 加粗字体   
  117.             range.Font.Size = 20;          // 设置字体大小   
  118.             range.Font.ColorIndex = 5;      // 设置字体颜色   
  119.             range.Interior.ColorIndex = 6;  // 设置单元格背景色   
  120.             //range.HorizontalAlignment = XlHAlign.xlHAlignCenter;// 设置单元格水平居中   
  121.             //range.VerticalAlignment = XlVAlign.xlVAlignCenter;// 设置单元格垂直居中   
  122.             range.Value2 = "设置行高和列宽";// 设置单元格的值   
  123.   
  124.             range = mySheet1.get_Range("B2""D4");// 获取多个单元格   
  125.             range.Merge(Missing.Value);        // 合并单元格   
  126.             range.Columns.AutoFit();            // 设置列宽为自动适应   
  127.             range.NumberFormatLocal = "#,##0.00";// 设置单元格格式为货币格式   
  128.             // 设置单元格左边框加粗   
  129.             //range.Borders[XlBordersIndex.xlEdgeLeft].Weight = XlBorderWeight.xlThick;   
  130.             // 设置单元格右边框加粗   
  131.             //range.Borders[XlBordersIndex.xlEdgeRight].Weight = XlBorderWeight.xlThick;   
  132.             range.Value2 = "合并单元格";   
  133.         }   
  134.       public void  PrintSet ()      //打印设置   
  135.         {   
  136.             //mySheet1.PageSetup.PaperSize  = mySheet1.XLPaperSize.xlPaperA4;          // 设置页面大小为A4   
  137.             //mySheet1.PageSetup.Orientation = XlPageOrientation.xlPortrait; // 设置垂直版面   
  138.             mySheet1.PageSetup.HeaderMargin = 0.0;                        // 设置页眉边距   
  139.             mySheet1.PageSetup.FooterMargin = 0.0;                        // 设置页脚边距   
  140.             mySheet1.PageSetup.LeftMargin = myExcel.InchesToPoints(0.354330708661417); // 设置左边距   
  141.             mySheet1.PageSetup.RightMargin = myExcel.InchesToPoints(0.354330708661417);// 设置右边距   
  142.             mySheet1.PageSetup.TopMargin = myExcel.InchesToPoints(0.393700787401575);  // 设置上边距   
  143.             mySheet1.PageSetup.BottomMargin = myExcel.InchesToPoints(0.393700787401575);// 设置下边距   
  144.             mySheet1.PageSetup.CenterHorizontally = true;                  // 设置水平居中   
  145.   
  146.         }   
  147.         public void InsertPicture()  //插入图片   
  148.     {   
  149.      }   
  150.         public void SetColumnWidth()  //设置列宽   
  151.         {   
  152.         }   
  153.         public void PastePicture()    //粘贴图片   
  154.         {   
  155.         }   
  156.         public void InsertPicture(string RangeName, string PicturePath)   
  157.         {   
  158.                     public void QuitExcel()      //退出excle并退出excle就进程   
  159.         {   
  160.             Excel.Application myExcel = new Excel.Application();   
  161.             myExcel.Quit();   
  162.             GC.Collect();   
  163.             return;   
  164.         }   
  165.     }   
  166. }  

 

你可能感兴趣的:(以下是网上找到一些关于excel操作的资源可通过链接查看http://www.soaspx.com/dotnet/csharp/csharp_20091125_1762.html)