们想为用户提供一些数据,考虑再三, 大家认为对于用户(人,而非机器)的可读性, Excel文件要好一些.
因为相比csv,xml等文件, Excel中我们可以运用自动筛选, 窗口锁定, 还可以控制背景颜色, 前景颜色, 字体, 网格等等...
业务逻辑并不复杂, 文件的内容和格式也比较固定,所以大家决定直接拿C#去创建这些文件.
于是一搜索,首先来到了这个链接:C# Excel Tutorial
里面包含了下面这些主题的代码示例, 示例很详细, 编译可直接运行.
为了理解上面这些代码需要理解一下Excel的对象模型, 可以参考msdn的下面这个链接
Excel Object Model Overview
里面介绍了4个核心对象:
前三个对象比较好理解, 关键在于第四个对象:Range.
起初我以为更改一些单元格的字体颜色格式等等的, 是需要通过Cell这个对象来做.
看完了之后才发现, 这些操作其实都是通过Range来完成的.
还包括和并单元格, 设置网格线等等, 甚至读取和设置一个单元格的值,都可以通过Range来完成,
所以基本上当我们操作excel的时候, 我们最经常的就是和Range对象打交道, 而很少使用Cell等对象.
如果有什么需求不知道怎么实现,
建议可以先到Range对象里面翻一翻, 看看msdn上Range对象的Members,Methods,Properties的相关文档.
还有一点要补充的是:
不仅仅是C#, 还包括其他语言的Excel API, 都是对Excel对象模型的直接模拟和包装.不过Java,Ruby等等.
也就是说, 其他语言的Excel API也都会有上面那四个主要对象, 而且也都会以近乎相同的方式, 干着差不多的事儿.
接下来想写一写关于Missing.Value的事儿
对于前面给出的,创建Excel表的例子的代码, 转载如下:
这段代码中,很多函数调用都传递了这个参数:
object misValue = System.Reflection.Missing.Value;
他的详细介绍参考这个链接Missing Class
上面的例子,
简单的说就是:
当我想以一些参数的默认值来调用一些dll中的方法的, 我们在方法调用中忽略掉这些参数也不对,
我们用null传递给这些参数还不对,
这时我们便可以给这些参数赋值以Missing.Value来告诉运行时环境, 用这个参数的默认值帮我运行吧.
对于这段代码还有一个需要注意的问题:
注意Application,Workbook,Worksheet这三个对象的清理工作
该保存的保存, 该close的close, 该quit的quit, 最后, 他们还都应该被release
using System;
using System.Windows.Forms;
using Excel = Microsoft.Office.Interop.Excel;
namespace WindowsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Excel.Application xlApp ;
Excel.Workbook xlWorkBook ;
Excel.Worksheet xlWorkSheet ;
object misValue = System.Reflection.Missing.Value;
xlApp = new Excel.ApplicationClass();
xlWorkBook = xlApp.Workbooks.Add(misValue);
xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);
xlWorkSheet.Cells[1, 1] = "http://csharp.net-informations.com";
xlWorkBook.SaveAs("csharp-Excel.xls", Excel.XlFileFormat.xlWorkbookNormal, misValue, misValue, misValue, misValue, Excel.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue);
xlWorkBook.Close(true, misValue, misValue);
xlApp.Quit();
releaseObject(xlWorkSheet);
releaseObject(xlWorkBook);
releaseObject(xlApp);
MessageBox.Show("Excel file created , you can find the file c:\\csharp-Excel.xls");
}
private void releaseObject(object obj)
{
try
{
System.Runtime.InteropServices.Marshal.ReleaseComObject(obj);
obj = null;
}
catch (Exception ex)
{
obj = null;
MessageBox.Show("Exception Occured while releasing object " + ex.ToString());
}
finally
{
GC.Collect();
}
}
}
}
最后想写一下关于如何设置字体的颜色, 以及单元格的背景颜色的事儿.
以背景色设置为红色为例, 首先我们可以写出形如下面这样的代码:
Excel.Range chartRange;
chartRange = xlWorkSheet.get_Range("a1", "e4");
chartRange.Interior.Color = 255;
但是这个255很不好记, 比如青色对应的数字是16777164, 这个就更加不好理解.
所以我们可以改为这样设置颜色, 使用ColorTranslator转换一下:
chartRange.Interior.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Red);
最后还有一种设置方法是不对Color进行设置, 而是设置相应的ColorIndex, 形如下面这样:
chartRange.Interior.ColorIndex = 3;
ColorIndex的色表参考下面这两个连接:
Color Palette and the 56 Excel ColorIndex Colors
Excel Color Palette and Color Index change using VBA
第一个连接特别详细,
第二个连接则介绍了如何使用VBA在Excel文件中生成这些色表, 同时还提供了一个xls格式的色表文件下载.
分享到:
相关推荐
本示例“c#读取excel文件.rar”提供了一个解决方案,它着重解决了如何在C#应用中读取Excel文件的问题。下面将详细介绍相关的知识点。 首先,要读取Excel文件,你需要引入一个能与Excel接口的库。在.NET Framework中...
首先,要导入Excel文件到ListView,我们需要使用一个能够读取Excel文件的库,如Microsoft Office Interop库或更轻量级的第三方库,如NPOI。对于本示例,我们假设使用NPOI,因为它无需安装Office,可以跨平台运行。 ...
综上所述,"C# 读取XML文件并写入Excel表格"这一主题涵盖了XML解析和Excel操作的关键技术,对于数据处理和报告生成等场景非常实用。在实际应用中,开发者可以根据具体需求调整代码逻辑,以满足各种复杂的业务需求。
在.NET开发环境中,C#程序员经常需要处理Excel文件,用于数据导入导出、报表生成等任务。EPPlus是一个强大的开源库,专为处理Office Open XML(XLSX)格式的Excel文件而设计。本文将详细介绍如何使用EPPlus进行Excel...
本示例将深入探讨如何使用C#来简单地读取Excel数据,这对于数据分析、报表生成或数据导入到数据库等场景非常实用。下面,我们将详细讲解这个过程。 首先,为了在C#中操作Excel文件,你需要引入一个库来处理Excel...
当涉及到处理电子表格,如Microsoft Excel,C#提供了强大的库和API,使得开发者可以方便地读取、写入和操作Excel文件。标题"**C#任意读取excel**"暗示了我们将讨论如何使用C#语言来实现对Excel文件的灵活读取。 在...
首先,C#本身并不内置读取Excel的API,因此我们需要借助第三方库来实现。一个常用的库是NPOI,这是一个Java的POI库的.NET版本,支持读写Microsoft Office文件格式,包括Excel(.xlsx和.xls)。要使用NPOI,你需要先...
在本文中,我们将深入探讨如何使用C# Winform应用程序来读取Excel文件并将其数据导入到数据库中。这个过程涉及到几个关键步骤,包括文件操作、数据解析以及与数据库的交互。 首先,C#是Microsoft开发的一种面向对象...
本话题主要关注如何使用C#操作Excel文件,包括读取数据和导出数据到Excel,这对于数据分析、报告生成以及数据交换等场景非常实用。 首先,读取Excel数据通常需要借助第三方库,因为.NET框架的标准库并不直接支持...
本篇文章将详细探讨C#如何操作Excel文件,包括读取Excel内容和向Excel中写入内容。 首先,我们需要一个库来与Excel交互。Microsoft提供了两个主要的选择:`Microsoft.Office.Interop.Excel`(也称为COM Interop)和...
NExcel 是一个专门为 .NET 开发的开源库,用于读取和写入 Excel 文件。它为.NET 开发人员提供了一种高效且灵活的方式来处理 Excel 数据,而无需依赖 Microsoft Office 或安装其他大型组件。NExcel 支持多种 Excel ...
在Unity游戏开发环境中,C#是主要的编程语言,NPOI插件的引入使得开发者可以在游戏中或者相关应用中生成和操作Excel文件,这在数据管理、报告生成或者用户数据导出等场景下非常有用。 首先,要理解如何在Unity中...
ClosedXML是另一个流行的C# Excel处理库,它提供了简单易用的API来创建、读取和编辑Excel 2007及更高版本的XLSX文件。ClosedXML特别适合用于生成报表,因为它支持复杂的样式、条件格式化和表格操作。 5. **Aspose....
总结来说,C#读取Excel文件的关键在于选择合适的库,如NPOI,然后利用库提供的API来访问和操作Excel数据。在实际应用中,你可能需要根据项目需求进行数据处理、异常处理以及性能优化。通过不断的实践和学习,你将...
EPPlus是一个强大的C#库,专门用于处理Excel文件,尤其是xlsx格式,它支持读取、写入和操作Excel数据,而无需依赖Microsoft Office组件。这个DEMO是基于EPPlus实现Excel文件生成的实例,适用于Visual Studio 2010。 ...
2. **多线程处理**:利用C#的`Task`或`ThreadPool`实现多线程,将数据读取和Excel生成过程分离,提高程序响应速度。比如,可以先在一个单独的线程中读取数据库,同时用户界面仍保持响应,然后在另一个线程中生成...
在C#编程环境中,开发人员经常需要处理与Word和Excel文档相关的任务,如读取、创建和编辑这些文件。然而,通常情况下,这需要在用户的计算机上安装完整的Microsoft Office套件,包括Word和Excel。标题提到的技术允许...
### C#实现EXCEL文件读取的关键知识点 #### 一、理解Excel对象模型 在C#中处理Excel文件时,通常需要了解Excel的对象模型。这包括了多种对象,从简单的图形对象到复杂的透视表和图表。 1. **Application对象**: ...
它允许程序员在.NET环境中创建、修改和读取Excel文件,而无需安装Microsoft Office。本篇将深入探讨NPOI在处理复杂Excel操作时的应用,以及通过实例代码进行讲解。 1. **NPOI.DLL的介绍** NPOI.DLL是NPOI项目的...
在C#编程环境中,操作Excel文件是常见的任务,特别是在数据处理、报表生成或者用户界面交互的应用中。本知识点主要探讨如何使用C#读取和写入Excel 2010文件,以及涉及到的相关技术和库。 首先,C#本身并不直接支持...