c#对Excel操作

原创 2007年10月09日 12:48:00

本代码可以对Excel生成自定义的交叉表头,可以制作自定义的交叉报表。

代码使用的是Owc11库,要先安装这个库,再将其引用到项目中。

 对excel主要的操作有:

1.新建excel进程

2.获得操作范围

3.对单元格进行纵向横向合并

4.设置样式

5.导出

6.以网面形式显示

private void button1_Click(object sender, EventArgs e)
        
...{
            
            Microsoft.Office.Interop.Owc11.SpreadsheetClass xlsheet 
= new Microsoft.Office.Interop.Owc11.SpreadsheetClass();
            
            FillInLeft(
1, xlsheet, sList, xLevel);

            
try
            
...{                               
               
//导出
                xlsheet.Export("../../TestOWC.htm", Microsoft.Office.Interop.Owc11.SheetExportActionEnum.ssExportActionNone, Microsoft.Office.Interop.Owc11.SheetExportFormat.ssExportHTML);
            }

            
catch
            
...{
                MessageBox.Show(
"Export Error!");
            }


            
string strFileName = @"D:TestOWC.htm";
            Object refmissing 
= System.Reflection.Missing.Value;
            axWebBrowser1.Navigate(strFileName, 
ref refmissing, ref refmissing, ref refmissing, ref refmissing);
            
        }


private void FillInLeft(int beginRow, Microsoft.Office.Interop.Owc11.SpreadsheetClass xlsheet, Stack sList, int xlevel)
        
...{//xml中的节点写入Excel的顺序是:由上往上,由左往右
            
//beginRow:从第几行开始写入 xlsheet:目的Excel文件 sList:存入节点的堆栈 xlevle:深度
            int row = beginRow; //int row = ((node)sList.Peek()).i;
            while (sList.Count > 0)
            
...{
                node node1 
= (node)sList.Pop();
                
if (node1.i > 1)
                
...{//有子节点且子节点在2个以上,需纵向合并
                    xlsheet.get_Range(xlsheet.Cells[row, node1.j], xlsheet.Cells[row + node1.i - 1, node1.j]).set_MergeCells(true);
                }

                
if (node1.i == 0)
                
...{
                    
if (node1.j < xlevel)
                    
...{//叶节点不在最下层,则横向合并
                        xlsheet.get_Range(xlsheet.Cells[row, node1.j], xlsheet.Cells[row, xlevel]).set_MergeCells(true);
                    }

                }

                xlsheet.Cells[row, node1.j] 
= node1.n.Attributes.GetNamedItem("name").Value;
                
if (node1.i == 0//是叶节点,则下一个节点填在下一行
                    row += 1;
            }


            Microsoft.Office.Interop.Owc11.Range range 
= xlsheet.get_Range(xlsheet.Cells[11], xlsheet.Cells[xlsheet.ActiveSheet.UsedRange.Rows.Count, xlsheet.ActiveSheet.UsedRange.Columns.Count]);
            
//单元格文本水平居中对齐
            range.set_HorizontalAlignment(Microsoft.Office.Interop.Owc11.XlHAlign.xlHAlignCenter);
            
//单元格文本垂直居中对齐
            range.set_VerticalAlignment(Microsoft.Office.Interop.Owc11.XlVAlign.xlVAlignCenter);
            
//设置表头列宽
            range.set_ColumnWidth(14);
            
//设置边框
            range.Borders.set_LineStyle(Microsoft.Office.Interop.Owc11.XlLineStyle.xlContinuous);
        }

[C#]对Excel的操作

private void ExcelOperation() { // //定义一个缺少的object对象 object oMis = System...
  • stu059074244
  • stu059074244
  • 2017年09月01日 09:48
  • 49

C#操作Excel总结

0. 导入命名空间:  1 2 3 4 using Microsoft.Office.Core; using Microsoft...
  • yunhaiC
  • yunhaiC
  • 2015年11月14日 18:10
  • 3237

C#对Excel的基本操作

Office2007尚未普及,Office2000~2003仍然是主流。本文介绍一些C#处理Excel得方法,都是自己封装的~1. 添加COM组件的Reference2. 引入名字空间using Mi...
  • fallriver
  • fallriver
  • 2008年04月24日 14:53
  • 1865

C#对Excel的读写操作

读取Excel,首先要添加Microsoft.Office.Interop.Excel 12.0 动态库  读取工作薄中的sheetspublic ArrayList loadExcelSheets(...
  • dyyaries
  • dyyaries
  • 2011年06月29日 18:05
  • 1985

c# 读取写入excel单元格(包括对excel的一些基本操作)【总结篇】

这次雇主又说要加几个功能,没办法,作为程序猿,只能乖乖听话啦!对于这几个功能,我也做了一些总结 以下是一些对excel的一些基本操作: 命名控件的引入: using Microsoft.office...
  • cyg2001
  • cyg2001
  • 2016年08月10日 17:00
  • 5693

一个C#操作Excel类,功能比较全

using System; using System.Data; using System.Configuration; using System.Web; using Microsoft.Offic...
  • cuoban
  • cuoban
  • 2018年03月12日 10:17
  • 153

自己用的c#操作excel类。

下面的程序,是自己经常用到的excel操作类,本程序与别的对excel操作唯一改进的地方是对excel数据的填充方式上。网上经常看到的填充方式有:1:按单元格2:按区域(range)本程序,也还是按区...
  • yangang0201
  • yangang0201
  • 2007年07月13日 09:56
  • 4455

C# winform 开发之Excel操作

 C# winform 开发之Excel操作(一)------打开Exce表 在开始之前,先要导入Excel的类库。步骤如下: 把鼠标移动解决方案---->右击----->选择“添加引...
  • Andrewniu
  • Andrewniu
  • 2017年01月17日 16:55
  • 2563

C#操作Excel

原贴在这:http://blog.csdn.net/alisa525/article/details/7353664Microsoft.Office.Interop.Excel._Worksheet ...
  • rztyfx
  • rztyfx
  • 2016年09月03日 20:18
  • 913

C# 操作Excel

2种读取Excel方法 ---------------------------------------------------方法一 /// /// 解析Excel,返回Data...
  • happy09li
  • happy09li
  • 2012年04月06日 13:32
  • 41787
收藏助手
不良信息举报
您举报文章:c#对Excel操作
举报原因:
原因补充:

(最多只允许输入30个字)