• C# 操作excel文件


    VS2010中可引用微软官方的库操作office 2007和2010,如要操作office 2003,根据网友的经验,还是使用vs2005比较好,很多人反映vs2008的office 2003 vsto项目会有问题。

    由于工作需要,要做一个定向生成xlsx文档的小程序,本来想用vs2010提供的office模板做的,但是写的项目一直无法运行,而且在msdn上也有人提出类似的问题,但找不到解决的方法,于是就直接使用winform来操作了。

    excel的对象类型如下图示:

    Application——Excel的Application对象,是根对象

    Workbook(s)——工作簿

    Worksheet(s)——工作表

    Chart(s)——各种图表

    Sheets——包含Worksheet或Chart类型的对象

    Range——表示希望操作的单元格范围


    首先要引入office的工具库

    using Microsoft.Office.Interop.Excel;

    创建对象

    Microsoft.Office.Interop.Excel.Application excelApp = new Microsoft.Office.Interop.Excel.Application();
    Microsoft.Office.Interop.Excel.Workbook excelDoc = excelApp.Workbooks.Add(Type.Missing);//
    Microsoft.Office.Interop.Excel.Worksheet xlsSheet = excelDoc.Worksheets.Add(Type.Missing, Type.Missing, Type.Missing, Type.Missing);
    xlsSheet.Name="mySheet";//重命名工作表的名字
    excelApp.DisplayAlerts = false;

    如需打开现有xlsx文件,可以这样:

    Microsoft.Office.Interop.Excel.Application excelApp = new Microsoft.Office.Interop.Excel.Application();
    Microsoft.Office.Interop.Excel.Workbook excelDoc = excelApp.Workbooks.Add("d:\\test.xlsx");
    Microsoft.Office.Interop.Excel.Worksheet xlsSheet = excelDoc.Worksheets["Sheet1"];

    以下为一些基本的操作:

                // 单元格下标是从[1,1]开始的
    xlsSheet.Cells[1, 1] = "Name";
    xlsSheet.Cells[1, 2] = "Sex";
    for (int i = 2; i < 5; i++)
    {
    xlsSheet.Cells[i, 1] = "Name" + i;
    xlsSheet.Cells[i, 2] = "Sex" + i;
    }

    Microsoft.Office.Interop.Excel.Range range1 = xlsSheet.get_Range("A1", "B1");//定义操作范围
    range1.MergeCells = true; //合并单元格
    range1.RowHeight = 18; //设置标题行高
    range1.Font.Size = 12; //设置标题字体
    range1.Font.Bold = true; //设置标题为粗体
    range1.ColumnWidth = 40; // 设置列宽
    range1.Font.Name = "华文彩云";//设置字体类型
    range1.HorizontalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignCenter;//居中
    range1.VerticalAlignment = Microsoft.Office.Interop.Excel.XlVAlign.xlVAlignCenter; // 垂直显示在中间


    Microsoft.Office.Interop.Excel.Range range2 = xlsSheet.get_Range("A2", "B4");
    range2.RowHeight = 18; //设置标题行高
    range2.Font.Size = 10; //设置标题字体
    range2.Font.Color=Color.Red;//设置字体颜色
    range2.Font.FontStyle = FontStyle.Italic;//设置字体为斜体
    range2.ColumnWidth = 40; // 设置列宽
    range2.HorizontalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignLeft;//居中
    range2.Borders.Weight = 2;//设置边框宽度

    // 文件保存
    string filename = "d:\\test.xlsx";
    xlsSheet.SaveAs(filename);
    excelDoc.Close(Type.Missing, filename, Type.Missing);
  • 相关阅读:
    《CLR via C#》读书笔记 之 基元类型、引用类型和值类型 明
    《CLR via C#》读书笔记 之 类型和成员基础 明
    《CLR via C#》读书笔记 之 方法 明
    设计模式基础(一):UML中关系图解 明
    【转载】c#类的成员初始化顺序 明
    《CLR via C#》读书笔记 之 接口 明
    《CLR via C#》读书笔记 之 事件 明
    《CLR via C#》读书笔记 之 参数 明
    三塔DP——http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3554
    二分求幂——http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3549
  • 原文地址:https://www.cnblogs.com/lingcoln/p/2305154.html
Copyright © 2020-2023  润新知