首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

C# API: 生成跟读取Excel文件

2012-09-06 
C# API: 生成和读取Excel文件们想为用户提供一些数据,考虑再三, 大家认为对于用户(人,而非机器)的可读性,

C# API: 生成和读取Excel文件

们想为用户提供一些数据,考虑再三, 大家认为对于用户(人,而非机器)的可读性, Excel文件要好一些.

因为相比csv,xml等文件, Excel中我们可以运用自动筛选, 窗口锁定, 还可以控制背景颜色, 前景颜色, 字体, 网格等等...

业务逻辑并不复杂, 文件的内容和格式也比较固定,所以大家决定直接拿C#去创建这些文件.

?

于是一搜索,首先来到了这个链接:C# Excel Tutorial

里面包含了下面这些主题的代码示例, 示例很详细, 编译可直接运行.

  • 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格式的色表文件下载.

    ?

    ?

    ?

    ?

  • 热点排行