C#Excel操作的用法

这里是一些整理的Excel的一些简单的操作

 

ApplicationClass ExcelApp = New ApplicationClass();

2) 更改 Excel 标题栏:
 ExcelApp.Caption := '应用程序调用 Microsoft Excel';
3) 添加新工作簿:
 ExcelApp.WorkBooks.Add;
4) 打开已存在的工作簿:
 ExcelApp.WorkBooks.Open( 'C:\Excel\Demo.xls' );
5) 设置第2个工作表为活动工作表:
 ExcelApp.WorkSheets[2].Activate; 或
 ExcelApp.WorksSheets[ 'Sheet2' ].Activate;
6) 给单元格赋值:
 ExcelApp.Cells[1,4].Value := '第一行第四列';
7) 设置指定列的宽度(单位:字符个数),以第一列为例:
 ExcelApp.ActiveSheet.Columns[1].ColumnsWidth := 5;
8) 设置指定行的高度(单位:磅)(1磅=0.035厘米),以第二行为例:
 ExcelApp.ActiveSheet.Rows[2].RowHeight := 1/0.035; // 1厘米
9) 在第8行之前插入分页符:
 ExcelApp.WorkSheets[1].Rows[8].PageBreak := 1;
10) 在第8列之前删除分页符:
 ExcelApp.ActiveSheet.Columns[4].PageBreak := 0;
11) 指定边框线宽度:
 ExcelApp.ActiveSheet.Range[ 'B3:D4' ].Borders[2].Weight := 3;
 1-左 2-右 3-顶 4-底 5-斜( \ ) 6-斜( / )
12) 清除第一行第四列单元格公式:
 ExcelApp.ActiveSheet.Cells[1,4].ClearContents;
13) 设置第一行字体属性:
 ExcelApp.ActiveSheet.Rows[1].Font.Name := '隶书';
 ExcelApp.ActiveSheet.Rows[1].Font.Color := clBlue;
 ExcelApp.ActiveSheet.Rows[1].Font.Bold := True;
 ExcelApp.ActiveSheet.Rows[1].Font.UnderLine := True;
14) 进行页面设置:
 a.页眉:
 ExcelApp.ActiveSheet.PageSetup.CenterHeader := '报表演示';
 b.页脚:
 ExcelApp.ActiveSheet.PageSetup.CenterFooter := '第&P页';
 c.页眉到顶端边距2cm:
 ExcelApp.ActiveSheet.PageSetup.HeaderMargin := 2/0.035;
 d.页脚到底端边距3cm:
 ExcelApp.ActiveSheet.PageSetup.HeaderMargin := 3/0.035;
 e.顶边距2cm:
 ExcelApp.ActiveSheet.PageSetup.TopMargin := 2/0.035;
 f.底边距2cm:
 ExcelApp.ActiveSheet.PageSetup.BottomMargin := 2/0.035;
 g.左边距2cm:
 ExcelApp.ActiveSheet.PageSetup.LeftMargin := 2/0.035;
 h.右边距2cm:
 ExcelApp.ActiveSheet.PageSetup.RightMargin := 2/0.035;
 i.页面水平居中:
 ExcelApp.ActiveSheet.PageSetup.CenterHorizontally := 2/0.035;
 j.页面垂直居中:
 ExcelApp.ActiveSheet.PageSetup.CenterVertically := 2/0.035;
 k.打印单元格网线:
 ExcelApp.ActiveSheet.PageSetup.PrintGridLines := True;
15) 拷贝操作:
 a.拷贝整个工作表:
 ExcelApp.ActiveSheet.Used.Range.Copy;
 b.拷贝指定区域:
 ExcelApp.ActiveSheet.Range[ 'A1:E2' ].Copy;
 c.从A1位置开始粘贴:
 ExcelApp.ActiveSheet.Range.[ 'A1' ].PasteSpecial;
 d.从文件尾部开始粘贴:
 ExcelApp.ActiveSheet.Range.PasteSpecial;
16) 插入一行或一列:
 a. ExcelApp.ActiveSheet.Rows[2].Insert;
 b. ExcelApp.ActiveSheet.Columns[1].Insert;
17) 删除一行或一列:
 a. ExcelApp.ActiveSheet.Rows[2].Delete;
 b. ExcelApp.ActiveSheet.Columns[1].Delete;
18) 打印预览工作表:
 ExcelApp.ActiveSheet.PrintPreview;
19) 打印输出工作表:
 ExcelApp.ActiveSheet.PrintOut;
20) 工作表保存:
 if not ExcelApp.ActiveWorkBook.Saved then
 ExcelApp.ActiveSheet.PrintPreview;
21) 工作表另存为:
 ExcelApp.SaveAs( 'C:\Excel\Demo1.xls' );
22) 放弃存盘:
 ExcelApp.ActiveWorkBook.Saved := True;
23) 关闭工作簿:
 ExcelApp.WorkBooks.Close;
24) 退出 Excel:
 ExcelApp.Quit;


001 /// <summary>
002         /// ExcelEdit 的摘要说明
003         /// </summary>
004         public class ExcelEdit
005         {
006             public string mFilename;
007             public Microsoft.Office.Interop.Excel.Application app;
008             public Microsoft.Office.Interop.Excel.Workbooks wbs;
009             public Microsoft.Office.Interop.Excel.Workbook wb;
010             public Microsoft.Office.Interop.Excel.Worksheets wss;
011             public Microsoft.Office.Interop.Excel.Worksheet ws;
012             public ExcelEdit()
013             {
014                 //
015                 // TODO: 在此处添加构造函数逻辑
016                 //
017             }
018             public void Create()//创建一个Excel对象
019             {
020                 try
021                 {
022                     app = new Microsoft.Office.Interop.Excel.Application();
023                     wbs = app.Workbooks;
024                     wb = wbs.Add(true);
025                 }
026                 catch (Exception ex)
027                 {
028                      
029                     throw new Exception(ex.Message);
030                 }
031               
032             }
033             /// <summary>
034             /// 读取Excel文档
035             /// </summary>
036             /// <param name="Path">文件名称</param>
037             /// <returns>返回一个数据集</returns>
038             public DataTable ExcelToTable(string tablename)
039             {
040                 string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + mFilename+ ";" + "Extended Properties=Excel 8.0;";
041                 OleDbConnection conn = new OleDbConnection(strConn);
042                 conn.Open();
043                 string strExcel = "";
044                 OleDbDataAdapter myCommand = null;
045                 DataTable dt = null;
046                 strExcel = "select * from [" + tablename + "$]";
047                 myCommand = new OleDbDataAdapter(strExcel, strConn);
048                 dt = new DataTable();
049                 myCommand.Fill(dt);
050                 return dt;
051             }
052             public void Open(string FileName)//打开一个Excel文件
053             {
054                 try
055                 {
056                     app = new Microsoft.Office.Interop.Excel.Application();
057                     wbs = app.Workbooks;
058                     wb = wbs.Add(FileName);
059                     //wb = wbs.Open(FileName,  0, true, 5,"", "", true, Excel.XlPlatform.xlWindows, "\t", false, false, 0, true,Type.Missing,Type.Missing);
060                     //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);
061                     mFilename = FileName;
062                 }
063                 catch (Exception ex)
064                 {
065  
066                     throw new Exception(ex.Message);
067                 }
068                 
069             }
070             public Microsoft.Office.Interop.Excel.Worksheet GetSheet(string SheetName)//获取一个工作表
071             {
072                 Microsoft.Office.Interop.Excel.Worksheet s = (Microsoft.Office.Interop.Excel.Worksheet)wb.Worksheets[SheetName];
073                 return s;
074  
075             }
076             public Microsoft.Office.Interop.Excel.Worksheet GetSheet(int index)//获取一个工作表
077             {
078                 Microsoft.Office.Interop.Excel.Worksheet s = (Microsoft.Office.Interop.Excel.Worksheet)wb.Worksheets[index];
079                 return s;
080             }
081             public Microsoft.Office.Interop.Excel.Worksheet AddSheet(string SheetName)//添加一个工作表
082             {
083                 Microsoft.Office.Interop.Excel.Worksheet s = (Microsoft.Office.Interop.Excel.Worksheet)wb.Worksheets.Add(Type.Missing, Type.Missing, Type.Missing, Type.Missing);
084                 s.Name = SheetName;
085                 return s;
086             }
087  
088             public void DelSheet(string SheetName)//删除一个工作表
089             {
090                 ((Microsoft.Office.Interop.Excel.Worksheet)wb.Worksheets[SheetName]).Delete();
091             }
092             public Microsoft.Office.Interop.Excel.Worksheet ReNameSheet(string OldSheetName, string NewSheetName)//重命名一个工作表一
093             {
094                 Microsoft.Office.Interop.Excel.Worksheet s = (Microsoft.Office.Interop.Excel.Worksheet)wb.Worksheets[OldSheetName];
095                 s.Name = NewSheetName;
096                 return s;
097             }
098  
099             public Microsoft.Office.Interop.Excel.Worksheet ReNameSheet(Microsoft.Office.Interop.Excel.Worksheet Sheet, string NewSheetName)//重命名一个工作表二
100             {
101  
102                 Sheet.Name = NewSheetName;
103  
104                 return Sheet;
105             }
106  
107             public void SetCellValue(Microsoft.Office.Interop.Excel.Worksheet ws, int x, int y, object value)//ws:要设值的工作表     X行Y列     value   值
108             {
109                 ws.Cells[x, y] = value;
110             }
111             public void SetCellValue(string ws, int x, int y, object value)//ws:要设值的工作表的名称 X行Y列 value 值
112             {
113                
114                 GetSheet(ws).Cells[x, y] = value;
115  
116             }
117  
118             public void SetCellProperty(Microsoft.Office.Interop.Excel.Worksheet ws, int Startx, int Starty, int Endx, int Endy, int size, string name, Microsoft.Office.Interop.Excel.Constants color, Microsoft.Office.Interop.Excel.Constants HorizontalAlignment)//设置一个单元格的属性   字体,   大小,颜色   ,对齐方式
119             {
120                 name = "宋体";
121                 size = 12;
122                 color = Microsoft.Office.Interop.Excel.Constants.xlAutomatic;
123                 HorizontalAlignment = Microsoft.Office.Interop.Excel.Constants.xlRight;
124                 ws.get_Range(ws.Cells[Startx, Starty], ws.Cells[Endx, Endy]).Font.Name = name;
125                 ws.get_Range(ws.Cells[Startx, Starty], ws.Cells[Endx, Endy]).Font.Size = size;
126                 ws.get_Range(ws.Cells[Startx, Starty], ws.Cells[Endx, Endy]).Font.Color = color;
127                 ws.get_Range(ws.Cells[Startx, Starty], ws.Cells[Endx, Endy]).HorizontalAlignment = HorizontalAlignment;
128             }
129  
130             public void SetCellProperty(string wsn, int Startx, int Starty, int Endx, int Endy, int size, string name, Microsoft.Office.Interop.Excel.Constants color, Microsoft.Office.Interop.Excel.Constants HorizontalAlignment)
131             {
132                 //name = "宋体";
133                 //size = 12;
134                 //color = Excel.Constants.xlAutomatic;
135                 //HorizontalAlignment = Excel.Constants.xlRight;
136  
137                 Microsoft.Office.Interop.Excel.Worksheet ws = GetSheet(wsn);
138                 ws.get_Range(ws.Cells[Startx, Starty], ws.Cells[Endx, Endy]).Font.Name = name;
139                 ws.get_Range(ws.Cells[Startx, Starty], ws.Cells[Endx, Endy]).Font.Size = size;
140                 ws.get_Range(ws.Cells[Startx, Starty], ws.Cells[Endx, Endy]).Font.Color = color;
141  
142                 ws.get_Range(ws.Cells[Startx, Starty], ws.Cells[Endx, Endy]).HorizontalAlignment = HorizontalAlignment;
143             }
144  
145  
146             public void UniteCells(Microsoft.Office.Interop.Excel.Worksheet ws, int x1, int y1, int x2, int y2)//合并单元格
147             {
148                 ws.get_Range(ws.Cells[x1, y1], ws.Cells[x2, y2]).Merge(Type.Missing);
149             }
150  
151             public void UniteCells(string ws, int x1, int y1, int x2, int y2)//合并单元格
152             {
153                 GetSheet(ws).get_Range(GetSheet(ws).Cells[x1, y1], GetSheet(ws).Cells[x2, y2]).Merge(Type.Missing);
154  
155             }
156  
157  
158             public void InsertTable(System.Data.DataTable dt, string ws, int startX, int startY)//将内存中数据表格插入到Excel指定工作表的指定位置 为在使用模板时控制格式时使用一
159             {
160  
161                 for (int i = 0; i <= dt.Rows.Count - 1; i++)
162                 {
163                     for (int j = 0; j <= dt.Columns.Count - 1; j++)
164                     {
165                         GetSheet(ws).Cells[startX + i, j + startY] = dt.Rows[i][j].ToString();
166  
167                     }
168  
169                 }
170  
171             }
172             public void InsertTable(System.Data.DataTable dt, Microsoft.Office.Interop.Excel.Worksheet ws, int startX, int startY)//将内存中数据表格插入到Excel指定工作表的指定位置二
173             {
174  
175                 for (int i = 0; i <= dt.Rows.Count - 1; i++)
176                 {
177                     for (int j = 0; j <= dt.Columns.Count - 1; j++)
178                     {
179  
180                         ws.Cells[startX + i, j + startY] = dt.Rows[i][j];
181  
182                     }
183  
184                 }
185  
186             }
187  
188  
189             public void AddTable(System.Data.DataTable dt, string ws, int startX, int startY)//将内存中数据表格添加到Excel指定工作表的指定位置一
190             {
191  
192                 for (int i = 0; i <= dt.Rows.Count - 1; i++)
193                 {
194                     for (int j = 0; j <= dt.Columns.Count - 1; j++)
195                     {
196  
197                         GetSheet(ws).Cells[i + startX, j + startY] = dt.Rows[i][j];
198  
199                     }
200  
201                 }
202  
203             }
204             public void AddTable(System.Data.DataTable dt, Microsoft.Office.Interop.Excel.Worksheet ws, int startX, int startY)//将内存中数据表格添加到Excel指定工作表的指定位置二
205             {
206  
207  
208                 for (int i = 0; i <= dt.Rows.Count - 1; i++)
209                 {
210                     for (int j = 0; j <= dt.Columns.Count - 1; j++)
211                     {
212  
213                         ws.Cells[i + startX, j + startY] = dt.Rows[i][j];
214  
215                     }
216                 }
217  
218             }
219  
220             public void InsertActiveChart(Microsoft.Office.Interop.Excel.XlChartType ChartType, string ws, int DataSourcesX1, int DataSourcesY1, int DataSourcesX2, int DataSourcesY2, Microsoft.Office.Interop.Excel.XlRowCol ChartDataType)//插入图表操作
221             {
222                 ChartDataType = Microsoft.Office.Interop.Excel.XlRowCol.xlColumns;
223                 wb.Charts.Add(Type.Missing, Type.Missing, Type.Missing, Type.Missing);
224                 {
225                     wb.ActiveChart.ChartType = ChartType;
226                     wb.ActiveChart.SetSourceData(GetSheet(ws).get_Range(GetSheet(ws).Cells[DataSourcesX1, DataSourcesY1], GetSheet(ws).Cells[DataSourcesX2, DataSourcesY2]), ChartDataType);
227                     wb.ActiveChart.Location(Microsoft.Office.Interop.Excel.XlChartLocation.xlLocationAsObject, ws);
228                 }
229             }
230             public bool Save()//保存文档
231             {
232                 if (mFilename == "")
233                 {
234                     return false;
235                 }
236                 else
237                 {
238                     try
239                     {
240                         wb.Save();
241                         return true;
242                     }
243  
244                     catch (Exception ex)
245                     {
246                         return false;
247                     }
248                 }
249             }
250             public bool SaveAs(object FileName)//文档另存为
251             {
252                 try
253                 {
254                     wb.SaveAs(FileName, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlExclusive, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
255                     return true;
256  
257                 }
258  
259                 catch (Exception ex)
260                 {
261                     return false;
262  
263                 }
264             }
265             public void Close()//关闭一个Excel对象,销毁对象
266             {
267                 //wb.Save();
268                 wb.Close(Type.Missing, Type.Missing, Type.Missing);
269                 wbs.Close();
270                 app.Quit();
271                 wb = null;
272                 wbs = null;
273                 app = null;
274                 GC.Collect();
275             }
276         }

你可能感兴趣的:(Excel)