C#版Excel操作类

  1. //引入Excel的COM组件
  2. using System;
  3. using System.Data;
  4. using System.Configuration;
  5. using System.Web;
  6. using System.Web.Security;
  7. using System.Web.UI;
  8. using System.Web.UI.WebControls;
  9. using System.Web.UI.WebControls.WebParts;
  10. using System.Web.UI.HtmlControls;
  11. using Microsoft.Office.Interop;
  12. using Microsoft.Office.Core;
  13. namespace ExcelEdit
  14. {
  15. /// <SUMMARY>
  16. /// ExcelEdit 的摘要说明
  17. /// </SUMMARY>
  18.     public class ExcelEdit
  19.     {
  20.         public string mFilename;
  21.         public Excel.Application app;
  22.         public Excel.Workbooks wbs;
  23.         public Excel.Workbook wb;
  24.         public Excel.Worksheets wss;
  25.         public Excel.Worksheet ws;
  26.         public ExcelEdit()
  27.         {
  28.             //
  29.             // TODO: 在此处添加构造函数逻辑
  30.             //
  31.         }
  32.         public void Create()//创建一个Excel对象
  33.         {
  34.             app = new Excel.Application();
  35.             wbs = app.Workbooks;
  36.             wb = wbs.Add(true);
  37.         }
  38.         public void Open(string FileName)//打开一个Excel文件
  39.         {
  40.             app = new Excel.Application();
  41.             wbs = app.Workbooks;
  42.             wb = wbs.Add(FileName);
  43.             //wb = wbs.Open(FileName, 0, true, 5,"", "", true, Excel.XlPlatform.xlWindows, "t", false, false, 0, true,Type.Missing,Type.Missing);
  44.             //wb = wbs.Open(FileName,Type.Missing,Type.Missing,Type.Missing,Type.Missing,Type.Missing,Type.Missing,Excel.XlPlatform.xlWindows,Type.Missing,Type.Missing,Type.Missing,Type.Missing,Type.Missing,Type.Missing,Type.Missing);
  45.             mFilename = FileName;
  46.         }
  47.         public Excel.Worksheet GetSheet(string SheetName)
  48.        //获取一个工作表
  49.         {
  50.             Excel.Worksheet s = (Excel.Worksheet)wb.Worksheets[SheetName];
  51.             return s;
  52.         }
  53.         public Excel.Worksheet AddSheet(string SheetName)
  54.         //添加一个工作表
  55.         {
  56.             Excel.Worksheet s = (Excel.Worksheet)wb.Worksheets.Add(Type.Missing,Type.Missing,Type.Missing,Type.Missing);
  57.             s.Name = SheetName;
  58.             return s;
  59.         }
  60.         public void DelSheet(string SheetName)//删除一个工作表
  61.         {
  62.             ((Excel.Worksheet)wb.Worksheets[SheetName]).Delete();
  63.         }
  64.         public Excel.Worksheet ReNameSheet(string OldSheetName, string NewSheetName)//重命名一个工作表一
  65.         {
  66.             Excel.Worksheet s = (Excel.Worksheet)wb.Worksheets[OldSheetName];
  67.             s.Name = NewSheetName;
  68.             return s;
  69.         }
  70.         public Excel.Worksheet ReNameSheet(Excel.Worksheet Sheet, string NewSheetName)//重命名一个工作表二
  71.         {
  72.             Sheet.Name = NewSheetName;
  73.             return Sheet;
  74.         }
  75.         public void SetCellValue(Excel.Worksheet ws, int x, int y, object value)
  76. //ws:要设值的工作表     X行Y列     value   值
  77.         {
  78.             ws.Cells[x, y] = value;
  79.         }
  80.         public void SetCellValue(string ws, int x, int y, object value)
  81. //ws:要设值的工作表的名称 X行Y列 value 值
  82.         {
  83.             GetSheet(ws).Cells[x, y] = value;
  84.         }
  85.         public void SetCellProperty(Excel.Worksheet ws, int Startx, int Starty, int Endx, int Endy, int size, string name, Excel.Constants color, Excel.Constants HorizontalAlignment)
  86. //设置一个单元格的属性   字体,   大小,颜色   ,对齐方式
  87.         {
  88.             name = "宋体";
  89.             size = 12;
  90.             color = Excel.Constants.xlAutomatic;
  91.             HorizontalAlignment = Excel.Constants.xlRight;
  92.             ws.get_Range(ws.Cells[Startx, Starty], ws.Cells[Endx, Endy]).Font.Name = name;
  93.             ws.get_Range(ws.Cells[Startx, Starty], ws.Cells[Endx, Endy]).Font.Size = size;
  94.             ws.get_Range(ws.Cells[Startx, Starty], ws.Cells[Endx, Endy]).Font.Color = color;
  95.             ws.get_Range(ws.Cells[Startx, Starty], ws.Cells[Endx, Endy]).HorizontalAlignment = HorizontalAlignment;
  96.         }
  97.         public void SetCellProperty(string wsn, int Startx, int Starty, int Endx, int Endy, int size, string name, Excel.Constants color, Excel.Constants HorizontalAlignment)
  98.         {
  99.             //name = "宋体";
  100.             //size = 12;
  101.             //color = Excel.Constants.xlAutomatic;
  102.             //HorizontalAlignment = Excel.Constants.xlRight;
  103.             Excel.Worksheet ws = GetSheet(wsn);
  104.             ws.get_Range(ws.Cells[Startx, Starty], ws.Cells[Endx, Endy]).Font.Name = name;
  105.             ws.get_Range(ws.Cells[Startx, Starty], ws.Cells[Endx, Endy]).Font.Size = size;
  106.             ws.get_Range(ws.Cells[Startx, Starty], ws.Cells[Endx, Endy]).Font.Color = color;
  107.             ws.get_Range(ws.Cells[Startx, Starty], ws.Cells[Endx, Endy]).HorizontalAlignment = HorizontalAlignment;
  108.         }
  109.         public void UniteCells(Excel.Worksheet ws, int x1, int y1, int x2, int y2)
  110. //合并单元格
  111.         {
  112.             ws.get_Range(ws.Cells[x1, y1], ws.Cells[x2, y2]).Merge(Type.Missing);
  113.         }
  114.         public void UniteCells(string ws, int x1, int y1, int x2, int y2)
  115. //合并单元格
  116.         {
  117.             GetSheet(ws).get_Range(GetSheet(ws).Cells[x1, y1], GetSheet(ws).Cells[x2, y2]).Merge(Type.Missing);
  118.         }
  119.         public void InsertTable(System.Data.DataTable dt, string ws, int startX, int startY)
  120. //将内存中数据表格插入到Excel指定工作表的指定位置 为在使用模板时控制格式时使用一
  121.         {
  122.             for (int i = 0; i <= dt.Rows.Count - 1; i++)
  123.             {
  124.                 for (int j = 0; j <= dt.Columns.Count - 1; j++)
  125.                 {
  126.                     GetSheet(ws).Cells[startX+i, j + startY] = dt.Rows[i][j].ToString();
  127.                 }
  128.             }
  129.         }
  130.         public void InsertTable(System.Data.DataTable dt, Excel.Worksheet ws, int startX, int startY)
  131. //将内存中数据表格插入到Excel指定工作表的指定位置二
  132.         {
  133.             for (int i = 0; i <= dt.Rows.Count - 1; i++)
  134.             {
  135.                 for (int j = 0; j <= dt.Columns.Count - 1; j++)
  136.                 {
  137.                     ws.Cells[startX+i, j + startY] = dt.Rows[i][j];
  138.                 }
  139.             }
  140.         }
  141.         public void AddTable(System.Data.DataTable dt, string ws, int startX, int startY)
  142. //将内存中数据表格添加到Excel指定工作表的指定位置一
  143.         {
  144.             for (int i = 0; i <= dt.Rows.Count - 1; i++)
  145.             {
  146.                 for (int j = 0; j <= dt.Columns.Count - 1; j++)
  147.                 {
  148.                     GetSheet(ws).Cells[i + startX, j + startY] = dt.Rows[i][j];
  149.                 }
  150.             }
  151.         }
  152.         public void AddTable(System.Data.DataTable dt, Excel.Worksheet ws, int startX, int startY)
  153. //将内存中数据表格添加到Excel指定工作表的指定位置二
  154.         {
  155.             for (int i = 0; i <= dt.Rows.Count - 1; i++)
  156.             {
  157.                 for (int j = 0; j <= dt.Columns.Count - 1; j++)
  158.                 {
  159.                     ws.Cells[i + startX, j + startY] = dt.Rows[i][j];
  160.                 }
  161.             }
  162.         }
  163. public void InsertPictures(string Filename, string ws)
  164. //插入图片操作一
  165.         {
  166.             GetSheet(ws).Shapes.AddPicture(Filename, MsoTriState.msoFalse,MsoTriState.msoTrue, 10, 10, 150, 150);
  167. //后面的数字表示位置
  168.         }
  169.         //public void InsertPictures(string Filename, string ws, int Height, int Width)
  170. //插入图片操作二
  171.         //{
  172.         //    GetSheet(ws).Shapes.AddPicture(Filename, MsoTriState.msoFalse, MsoTriState.msoTrue, 10, 10, 150, 150);
  173.         //    GetSheet(ws).Shapes.get_Range(Type.Missing).Height = Height;
  174.         //    GetSheet(ws).Shapes.get_Range(Type.Missing).Width = Width;
  175.         //}
  176.         //public void InsertPictures(string Filename, string ws, int left, int top, int Height, int Width)
  177. //插入图片操作三
  178.         //{
  179.         //    GetSheet(ws).Shapes.AddPicture(Filename, MsoTriState.msoFalse, MsoTriState.msoTrue, 10, 10, 150, 150);
  180.         //    GetSheet(ws).Shapes.get_Range(Type.Missing).IncrementLeft(left);
  181.         //    GetSheet(ws).Shapes.get_Range(Type.Missing).IncrementTop(top);
  182.         //    GetSheet(ws).Shapes.get_Range(Type.Missing).Height = Height;
  183.         //    GetSheet(ws).Shapes.get_Range(Type.Missing).Width = Width;
  184.         //}
  185.         public void InsertActiveChart(Excel.XlChartType ChartType, string ws, int DataSourcesX1, int DataSourcesY1, int DataSourcesX2, int DataSourcesY2, Excel.XlRowCol ChartDataType)
  186. //插入图表操作
  187.         {
  188.             ChartDataType = Excel.XlRowCol.xlColumns;
  189.             wb.Charts.Add(Type.Missing,Type.Missing,Type.Missing,Type.Missing);
  190.             {
  191.                 wb.ActiveChart.ChartType = ChartType;
  192.                 wb.ActiveChart.SetSourceData(GetSheet(ws).get_Range(GetSheet(ws).Cells[DataSourcesX1, DataSourcesY1], GetSheet(ws).Cells[DataSourcesX2, DataSourcesY2]), ChartDataType);
  193.                 wb.ActiveChart.Location(Excel.XlChartLocation.xlLocationAsObject, ws);
  194.             }
  195.         }
  196.         public bool Save()
  197. //保存文档
  198.         {
  199.             if (mFilename == "")
  200.             {
  201.                 return false;
  202.             }
  203.             else
  204.             {
  205.                 try
  206.                 {
  207.                     wb.Save();
  208.                     return true;
  209.                 }
  210.                 catch (Exception ex)
  211.                 {
  212.                     return false;
  213.                 }
  214.             }
  215.         }
  216.         public bool SaveAs(object FileName)
  217. //文档另存为
  218.         {
  219.             try
  220.             {
  221.                 wb.SaveAs(FileName,Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing,Excel.XlSaveAsAccessMode.xlExclusive, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
  222.                 return true;
  223.               
  224.             }
  225.             catch (Exception ex)
  226.             {
  227.                 return false;
  228.                
  229.             }
  230.         }
  231.         public void Close()
  232. //关闭一个Excel对象,销毁对象
  233.         {
  234.             //wb.Save();
  235.             wb.Close(Type.Missing,Type.Missing,Type.Missing);
  236.             wbs.Close();
  237.             app.Quit();
  238.             wb = null;
  239.             wbs = null;
  240.             app = null;
  241.             GC.Collect();
  242.         }
  243.     }
 
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值