`
laowood
  • 浏览: 120978 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

C# 操作Excel

阅读更多
最近经常写导出报表的软件
所以对Excel操作算是了解的差不多了
拿来与大家分享一下


Excel.Application Excelapp =new Excel.Application();
Excelapp.Visible=false;
Excel._Workbook uniteExcel=null;
try
{
//创建一个Excel
uniteExcel = (Excel._Workbook)(Excelapp.Workbooks.Add( Missing.Value));
//打开一个EXCEL
Excel.Workbook currentExcel= Excelapp.Workbooks.Open("Excel.xls",Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value);
//Excel里的sheet
Excel._Worksheet currentSheet=(Excel._Worksheet)currentExcel.Sheets[1];

uniteSheet1.Cells[1,1]="TEST"//操作表格



//sheet style
uniteSheet1.get_Range(uniteSheet1.Cells[2,1],uniteSheet1.Cells[15,18]).Font.Size=10;

uniteSheet1.get_Range(uniteSheet1.Cells[4,1],uniteSheet1.Cells[4,18]).RowHeight=30;

uniteSheet1.get_Range(uniteSheet1.Cells[3,1],uniteSheet1.Cells[3,18]).RowHeight=30;

uniteSheet1.get_Range(uniteSheet1.Cells[1,1],uniteSheet1.Cells[15,1]).ColumnWidth=5;

uniteSheet1.get_Range(uniteSheet1.Cells[1,2],uniteSheet1.Cells[15,2]).ColumnWidth=15;

uniteSheet1.get_Range(uniteSheet1.Cells[1,11],uniteSheet1.Cells[15,11]).ColumnWidth=10;

uniteSheet1.get_Range(uniteSheet1.Cells[1,14],uniteSheet1.Cells[15,14]).ColumnWidth=10;

uniteSheet1.get_Range(uniteSheet1.Cells[2,3],uniteSheet1.Cells[4,6]).Interior.ColorIndex=27;

uniteSheet1.get_Range(uniteSheet1.Cells[2,7],uniteSheet1.Cells[4,15]).Interior.ColorIndex=38;

uniteSheet1.get_Range(uniteSheet1.Cells[2,16],uniteSheet1.Cells[4,18]).Interior.ColorIndex=35;

uniteSheet1.get_Range(uniteSheet1.Cells[5,1],uniteSheet1.Cells[14,2]).Interior.ColorIndex=33;

uniteSheet1.get_Range(uniteSheet1.Cells[15,1],uniteSheet1.Cells[15,1]).Interior.ColorIndex=33;

uniteSheet1.get_Range(uniteSheet1.Cells[15,2],uniteSheet1.Cells[15,18]).Interior.ColorIndex=15;

uniteSheet1.UsedRange.Borders[Excel.XlBordersIndex.xlInsideHorizontal].ColorIndex = Excel.XlColorIndex.xlColorIndexAutomatic;

uniteSheet1.UsedRange.Borders[Excel.XlBordersIndex.xlInsideHorizontal].LineStyle =Excel.XlLineStyle.xlContinuous;

uniteSheet1.UsedRange.Borders[Excel.XlBordersIndex.xlInsideHorizontal].Weight =Excel.XlBorderWeight.xlThin;

uniteSheet1.UsedRange.Borders[Excel.XlBordersIndex.xlInsideVertical].ColorIndex = Excel.XlColorIndex.xlColorIndexAutomatic;

uniteSheet1.UsedRange.Borders[Excel.XlBordersIndex.xlInsideVertical].LineStyle =Excel.XlLineStyle.xlContinuous;

uniteSheet1.UsedRange.Borders[Excel.XlBordersIndex.xlInsideVertical].Weight =Excel.XlBorderWeight.xlThin;

uniteSheet1.UsedRange.Borders[Excel.XlBordersIndex.xlEdgeRight].ColorIndex = Excel.XlColorIndex.xlColorIndexAutomatic;

uniteSheet1.UsedRange.Borders[Excel.XlBordersIndex.xlEdgeRight].LineStyle =Excel.XlLineStyle.xlContinuous;

uniteSheet1.UsedRange.Borders[Excel.XlBordersIndex.xlEdgeRight].Weight =Excel.XlBorderWeight.xlThin;

uniteSheet1.UsedRange.Borders[Excel.XlBordersIndex.xlEdgeBottom].ColorIndex = Excel.XlColorIndex.xlColorIndexAutomatic;

uniteSheet1.UsedRange.Borders[Excel.XlBordersIndex.xlEdgeBottom].LineStyle =Excel.XlLineStyle.xlContinuous;

uniteSheet1.UsedRange.Borders[Excel.XlBordersIndex.xlEdgeBottom].Weight =Excel.XlBorderWeight.xlThin;


uniteExcel.Saved =false;

uniteExcel.SaveCopyAs(savePath);

}
catch(Exception ex)
{

}
finally
{

System.Runtime.InteropServices.Marshal.ReleaseComObject(uniteSheet1);
System.Runtime.InteropServices.Marshal.ReleaseComObject(uniteSheet2);
System.Runtime.InteropServices.Marshal.ReleaseComObject(uniteSheet3);
//System.Runtime.InteropServices.Marshal.ReleaseComObject(range);
uniteExcel.Close(false,null,null);
System.Runtime.InteropServices.Marshal.ReleaseComObject(uniteExcel);
Excelapp.Quit();
uniteSheet1=null;
uniteSheet2=null;
uniteSheet3=null;

GC.Collect();
GC.WaitForPendingFinalizers();

Excelapp=null;

killExcelProcess()
}

Excel进程每次都关不掉,所以就拿出来杀手锏,不知道这样做好不好,但是肯定的是能用 呵呵
//结束 Excel 进程
foreach(System.Diagnostics.Process xlProcess in System.Diagnostics.Process.GetProcesses())
{
  if( xlProcess.ProcessName.ToUpper().Equals("EXCEL"))
  {
xlProcess.Kill();
   }
}
1
2
分享到:
评论

相关推荐

    C#操作Excel

    ### C#操作Excel知识点 #### 一、C#读取Excel的方法 在C#中,可以通过多种方式来读取Excel文件。本节介绍两种方法: ##### 方法一:使用`Microsoft.Office.Interop.Excel` 此方法适用于Office版本的Excel文件...

    C# 操作Excel写数据生成图表

    C#的,winform的,这是我自己写的一个c#操作excel的例子,其中包括数据操作,字体,格式,单元格等操作,还有一个生成柱状图的方法,所有的方法都在ExcelHelper.cs类里,点击Form1窗体里的按钮可以看到各种操作的...

    C#操作Excel的几种方法

    ### C#操作Excel的几种方法 #### 概述 在.NET框架中,通过C#语言进行Excel文件的操作是一项常见的需求,比如数据导入导出、报表生成等场景。本文将详细介绍几种利用C#来操作Excel的方法,并重点分析一种基于`...

    C# 操作Excel案例

    本案例聚焦于"C#操作Excel",这涉及到如何使用C#与Microsoft Office的Excel应用程序进行交互,以实现数据读取、写入、修改等操作。在实际工作中,这种技能对于数据处理、报表生成和自动化任务至关重要。 C#操作...

    C# 操作excel单元格合并,格式,冻结

    ### C# 操作Excel基础 在C#中处理Excel文档通常涉及到几个关键类:`Workbook`, `Worksheet`, 和 `Application`。这些类提供了操作Excel文档所需的大部分功能。 #### 创建Excel Application实例 ```csharp private ...

    C#操作EXCEL文件

    本文将深入探讨C#操作Excel文件的相关知识点。 首先,C#本身并不直接支持Excel操作,而是需要借助第三方库或者.NET Framework中的组件来实现。最常见的库之一是Microsoft.Office.Interop.Excel,它是.NET Framework...

    C#操作EXCEL类

    在C#中,操作Excel是一项常见的任务,尤其在数据分析和报表生成方面。在这个场景中,开发者面临的问题是如何根据动态的数据生成美观且...通过不断学习和实践,可以提高C#操作Excel的技能,创建更加复杂和美观的报表。

    C#操作excel

    ### C#操作Excel知识点详解 #### 一、概述 在.NET框架中,无论是Web应用程序还是桌面应用程序,特别是在涉及数据库操作的管理系统中,经常会遇到需要读取Excel数据或将数据导出到Excel的情况。本文将详细介绍几种...

    C#操作EXCEL EXCEL类库 Excel模板处理 将DataTable数据写入Excel文件 C#数据写入EXCEL

    总结一下,C#操作Excel可以选择多种途径,包括Interop库和第三方库如EPPlus。在处理大数据时,推荐使用后者,因为它更高效且不依赖于Office的本地安装。此外,通过模板处理和样式管理,可以轻松创建专业且格式化的...

    C#操作Excel源代码

    标题 "C#操作Excel源代码" 提供了一个关键信息,即使用C#编程语言来处理Microsoft Excel文件。在C#中,我们可以利用.NET框架提供的Microsoft.Office.Interop.Excel命名空间,这使得我们能够通过COM组件与Excel应用...

    C#操作Excel类示例

    总的来说,C#操作Excel的代码示例可以帮助开发者在不依赖完整Office环境的情况下,高效地进行数据处理。无论是读取现有数据还是生成新的Excel报告,这些类和方法都能提供必要的功能。通过学习和应用这些示例,开发者...

    C#操作Excel.pdf

    ### C#操作Excel知识点详解 #### 一、引言与背景 Excel作为微软办公套件中的重要组成部分,凭借其强大的功能和友好的用户界面而深受广大用户的喜爱。特别是在数据分析、财务管理等领域,Excel更是不可或缺的工具之...

    一个简单的C#操作Excel的例子

    首先,要进行C#操作Excel,我们需要引用一个库来处理Excel文件。在.NET框架中,常常使用`Microsoft.Office.Interop.Excel`库,它是Office Interop组件的一部分,允许与Office应用程序进行交互。不过,这个库需要在...

    C# 操作Excel大全

    C# 操作Excel大全 c//删除行 //删除一列数据 //设置背景色 //设置Format属性 等

    C#操作excel的方法汇总

    C#操作Excel的方法汇总 C#操作Excel的方法汇总是指使用C#语言对Excel进行读取、写入、编辑和导出等操作的方法汇总。这些方法可以帮助开发者快速、高效地完成Excel相关的任务。 一、使用OleDbConnection读取Excel...

Global site tag (gtag.js) - Google Analytics