Excel操作

1. Excel文件读取操作

    用到了一个xls表格,用来存储装备信息。表格信息如下。


1.1 连接字符串

  "Provider=Microsoft.Jet.OLEDB.4.0;"+ "Data Source=" + fileName + ";" + ";ExtendedProperties=\"Excel 8.0;HDR=YES;IMEX=1\"";

  "Provider=Microsoft.ACE.OLEDB.12.0;"+ "Data Source=" + fileName + ";" + ";ExtendedProperties=\"Excel 12.0;HDR=YES;IMEX=1\"";

1.2 Excel读取

using System;
using System.Collections.Generic;
using System.Data;
using System.Data.OleDb;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace _334_Excel操作
{
    class Program
    {
        static void Main(string[] args)
        {
            string fileName = "装备信息.xls";//可为一个相对路径名字,也可为一个绝对路径名字
            string connectionString= "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + fileName + ";" + ";Extended Properties=\"Excel 8.0;HDR=YES;IMEX=1\"";
            //1.创建连接到数据源的对象
            OleDbConnection connection = new OleDbConnection(connectionString);

            //打开连接
            connection.Open();
            string sql = "select * from [Sheet1$]";//这是一个查询命令,在此为从当前表格1做查询
            OleDbDataAdapter adapter = new OleDbDataAdapter(sql, connection);

            DataSet dataSet = new DataSet();//用来存放数据,用来存放DataTable

            adapter.Fill(dataSet);//把查询的结果(datatable)放到(填充)dataset里面

            connection.Close();//释放连接资源

            //取得数据
            DataTableCollection tableCollection= dataSet.Tables;//获取当前集合中所有的表格
            DataTable table= tableCollection[0];//因为只往dataset里放了一张表格,所以取得索引为0的表格就是刚刚查询到的表格

            //取得表格中的数据
            //取得table中所有行
            DataRowCollection rowCollection= table.Rows;//返回了一个行的集合

            //遍历行的集合,取得每一个行的datarow对象
            foreach(DataRow row in rowCollection)
            {
                //取得row中前8列数据,索引0-7
                for(int i=0;i<8;i++)
                {
                    Console.Write(row[i] + " ");
                }
                Console.WriteLine();
            }
            Console.ReadKey();

        }
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
前一阵,帮老板开发个数据分析系统,要能根据老板的想法利用选择的数据表的数据字段(包括数据字段之间互相运算生成新字段)来生成各种报表,现在系统完成了,但是还是很不完美。 主要的问题是EXCEL生成图的问题,因为系统的数据表很多个表(数据量也很大,经常上几十万行数据),而且分析字段也不固定,这意味着不好利用实现准备好的模板,c#打开模板把数据写到相应的地方,自动就生成图的方法,因为图的DATATABLE区域是不固定的,行数和列数都不固定。 我只好尝试用C#操作EXCEL类,将DATAVIEW的数据写入EXCEL,然后再生成柱状图,花了2天时间找资料,现在可以生成图了,但是生成的图不好看,细节上无法控制。 我把生成图的代码贴下,我再附上XML方式出EXCEL的代码,只是没办法出图,而且设置文件头为自己想要的格式比较麻烦,要一行行写,还是EXCEL类库方式好,灵活方便,美观。 protected void exportdt_Click(object sender, EventArgs e) { //以下是用MS.Excel类库操作excel工作簿方式输出gridview数据并做图 Excel.Application app = new Excel.Application(); if (app == null) { return; } //以下是EXCEL.APPLICATION控制EXCEL方法 app.Visible = true; //如果只想用程序控制该excel而不想让用户操作时候,可以设置为false app.UserControl = true; app.DisplayAlerts=false; Excel.Workbooks workbooks = app.Workbooks;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王大匣

你的鼓励是我创作最大动力,谢谢

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值