第二十九讲 : ADO.NET(玩SQL语句) 实例补充(OLEDB操作)

上面那一篇文字,提到如何要清险指定行数据呢?我是找遍千山万水啊,终于。。。。还是没有搞定,纠结啊,于乎我VS的主线路上,分支学一下关于C#操作Excel这个COM控件对象,先引用到项目中来,using Excel = Microsoft.Office.Interop.Excel; 其实,不要给这个空间加别名了还好,反正这种预定义的空间很少有重复的,这样就不用每调用一个其中的类都要加前缀了,牛人说的我看着是迷迷糊糊的,手工的去敲代码吧,还是有不能当时就理解的,囫囵吞枣的先写着吧,磨磨会透的。

我是根据网上前辈们的例字自己一个个敲的,但都要标注参教连接,虽说是选择原创,但目的是为了想归到一个类别中去,学这个也是出于兴趣和爱好,没有用于商业的目的,分享开源万岁,希望前辈们莫怪罪。呵呵

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Excel = Microsoft.Office.Interop.Excel;
using System.Reflection;

/*
 * 此实例来自:http://www.cnblogs.com/gfsoft/articles/278942.html
 *大家需要了解Tlbimp这个工具的使用啊:)这个东东很有用,可以将普通Win32程序移植到.Net下面来:)
 *首先的一步就是使用Tlbimp这个工具将Excel9.0的对象库文件Excel8.olb转换成为dll,这样才能做为.Net平台Assembly来使用:)
 *操作如下:(这是office2000的时候作者写的,我用提2007就不用考虑这些的,我想2003也不用考虑这个。)
 *TlbImp Excel9.olb Excel.dll 
 */


namespace ConExcelTest
{
    class Program
    {
        /// <summary>
        /// 详细的了解一些关C#与Excel的关系
        /// </summary>
        /// <param name="args"></param>
        static void Main(string[] args)
        {
            #region 操作Excel实例1,测试时,去除注释即可,我这个是控制台程序
            1. 创建一个新Excel的Application: 
            //Excel.Application excel = new Excel.Application();//实例化一个Excel程序对象
            //if (excel == null)
            //{
            //    //如果没有安装OFFICE程序的话会提示这个错误
            //    Console.WriteLine("错误:Excel程序无法被打开!");
            //}

            2. 让这个工程可见: 
            //excel.Visible = true;


            3. 获取WorkBooks集合:
            //Excel.Workbooks workbooks = excel.Workbooks;

            4. 加入新的WorkBook:
            //Excel.Workbook workbook = workbooks.Add(Excel.XlWBATemplate.xlWBATWorksheet);

            5. 获取WorkSheets集合:
            //Excel.Sheets worksheets = excel.Worksheets;
            //Excel.Worksheet worksheet = worksheets.get_Item(1);

            try
            {
                worksheet = worksheets.get_Item(2);
            }
            catch (Exception ex)
            {

                Console.WriteLine(ex.Message);
            }//报错:无效索引。 (异常来自 HRESULT:0x8002000B (DISP_E_BADINDEX))

            //if (worksheet == null)
            //{
            //    Console.WriteLine("错误:找不到工作表!");
            //}

            6. 给单元格设置变量:
            //#region 例1
            Excel.Range range1 = worksheet.get_Range("C1", Missing.Value);
            if (range1 == null)
            {
                Console.WriteLine("错误:找不到指定的!");
            }
            const int nCells = 5;//一个常量
            object[] args1 = new object[1];//一个对象数组
            args1[0] = nCells;
            range1.GetType().InvokeMember("Value", BindingFlags.SetProperty, null, range1, args1); 
            //#endregion

            //const int nCells = 5;//一个整型常量
            //Excel.Range range2 = worksheet.get_Range("A1", "E1");//获取一个单元格范围
            //int[] array2 = new int[nCells];//一个整型数组
            //for (int i = 0; i < array2.GetLength(0); i++)//遍历数组并赋值
            //{
            //    array2[i] = i + 1;
            //}
            //object[] args2 = new Object[1];//参数数组
            //args2[0] = array2;
            //range2.GetType().InvokeMember("Value", BindingFlags.SetProperty, null, range2, args2);

            #endregion


            /*
             * 以下来自:http://www.cnblogs.com/GavinCome/archive/2007/10/26/937993.html
             *C#+EXCEL制作高级报表
             */

            string[,] myData = new string[11, 7]{

              {"车牌号","类型","品 牌","型 号","颜 色","附加费证号","车架号"},

              {"浙KA3676","危险品","货车","铁风SZG9220YY","白","1110708900","022836"},

              {"浙KA4109","危险品","货车","解放CA4110P1K2","白","223132","010898"},

              {"浙KA0001A","危险品","货车","南明LSY9190WS","白","1110205458","0474636"},

              {"浙KA0493","上普货","货车","解放LSY9190WS","白","1110255971","0094327"},

              {"浙KA1045","普货","货车","解放LSY9171WCD","蓝","1110391226","0516003"},

              {"浙KA1313","普货","货车","解放9190WCD","蓝","1110315027","0538701"},

              {"浙KA1322","普货","货车","解放LSY9190WS","蓝","24323332","0538716"},

              {"浙KA1575","普货","货车","解放LSY9181WCD","蓝","1110314149","0113018"},

              {"浙KA1925","普货","货车","解放LSY9220WCD","蓝","1110390626","00268729"},

              {"浙KA2258","普货","货车","解放LSY9220WSP","蓝","111048152","00320"}

      };//一个二维数组

            Console.WriteLine("请输入一个单词,normal(普通报表)或advance(高级报表): ");
            //string getInfo = Console.ReadLine();
            //if (getInfo == "normal")
            //{ 
            //1. 创建一个Excel程序实例对象
            Excel.Application myExcel = new Excel.Application();
            myExcel.Application.Workbooks.Add(true);//这个地方不明白

            //2. 让Excel文件可见
            myExcel.Visible = true;

            //3. 第一行为报表名称
            myExcel.Cells[1, 4] = "'普通报表";

            //4. 逐行写入数据
            for (int i = 0; i < 11; i++)
            {
                for (int j = 0; j < 7; j++)
                {
                    //以单引号开头,表示该单元格为纯文本
                    myExcel.Cells[2 + i, 1 + j] = "\'" + myData[i, j];
                }
            }
            //}


            
            

            Console.ReadKey();
        }
    }
}


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值