zoukankan      html  css  js  c++  java
  • 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);
  • 相关阅读:
    swift 第三方库迁移错误解决“Use Legacy Swift Language Version” (SWIFT_VERSION) is required to be configured correctly for targets which use Swift. Use the [Edit > Convert > To Current Swift Syntax…] menu to choo
    ios 绘制虚线 CGContextSetLineDash的使用
    在 cell 中获取 textFlied内容的使用
    swift 委托代理传值
    swift3.0基础语法
    webSocket开源框架:SocketRocket 简单的使用
    iOS开发— Socket编程
    常见的 HTTP错误代码大全
    lambda表达式的使用
    浅谈静态代理模式 01
  • 原文地址:https://www.cnblogs.com/lingcoln/p/2305154.html
Copyright © 2011-2022 走看看