winform中怎么向一个已存在的excel文件的指定单元格添加数据!!

解决方案 »

  1.   

    比如我想将一个"Name"添加到excel文件的A2单元格!
    有高手知道怎么弄吗!?
      

  2.   

    c# 内容插入Excel 
    http://www.cnblogs.com/zengxiangzhan/archive/2009/11/24/1609299.html
      

  3.   

    最好是用
    string strConn = "provider=Microsoft.Jet.OLEDB.4.0;data source=" + _fileExcelName + ";Extended Properties=Excel 8.0;";
    然后返回一个
    DataSet ds = DBOperate.FillDataSet(oleSqlstr, DBOperate.DriverType.OleDb, strConn);
    但是我不知道这个怎么实现!有高人来解救啊!?
      

  4.   

    参考
    using System;   
    using System.Collections.Generic;   
    using System.Text;   
    using System.Data;   
    using System.Data.OleDb;   
    using System.Data.SqlClient;   
    using System.IO;   
    using Microsoft.Office.Interop.Excel;   
    namespace TestAccess   
    {   
        class Program   
        {   
            static void Main(string[] args)   
            {   
      
                string strConnection = "Provider=Microsoft.ACE.OLEDB.12.0;";   
                strConnection += @"Data Source=C:\Documents and Settings\v-changl\My Documents\couse.xlsx;";   
                strConnection += "Extended Properties=\"Excel 12.0 Xml;HDR=YES\";";   
                OleDbConnection objConnection = new OleDbConnection(strConnection);   
                objConnection.Open();   
                OleDbDataAdapter myCommandd = new OleDbDataAdapter("select * from [Sheet1$]", objConnection);   
                DataSet ds = new DataSet();   
                myCommandd.Fill(ds, "[Sheet1$]");   
                System.Data.DataTable dt = ds.Tables["[Sheet1$]"];   
                Console.WriteLine(dt.Columns[0].ToString());   
                Console.WriteLine(dt.Columns[1].ToString());   
                DataRow drDisplay = dt.Rows[0];   
                int[] num = new int[dt.Columns.Count];   
                for (int j = 0; ; )   
                {   
                    for (int i = 0; i < dt.Columns.Count; i++)   
                    {   
      
                        if (drDisplay[i] is DBNull) ;   
                        else  
                            num[i] += Convert.ToInt32(drDisplay[i]);   
      
                    }   
                    if (++j >= dt.Rows.Count) break;   
                    drDisplay = dt.Rows[j];   
                }   
                objConnection.Close();   
                object MissingValue = Type.Missing;   
                Microsoft.Office.Interop.Excel.Application app = new Application();   
                Microsoft.Office.Interop.Excel.Workbook wbook = app.Workbooks.Open(@"C:\Documents and Settings\v-changl\My Documents\couse.xlsx", MissingValue,   
    MissingValue, MissingValue, MissingValue,   
    MissingValue, MissingValue, MissingValue,   
    MissingValue, MissingValue, MissingValue,   
    MissingValue, MissingValue, MissingValue,   
    MissingValue);   
                Microsoft.Office.Interop.Excel.Worksheet wsheet = wbook.ActiveSheet as Microsoft.Office.Interop.Excel.Worksheet;   
                for (int i = 0; i < dt.Columns.Count; i++)   
                {   
                    //注意下面是i+1,,excel小标默认从1开始   
                    wsheet.Cells[dt.Rows.Count + 2, i + 1] = num[i].ToString();   
                }   
      
                wbook.Save();   
                wbook.Close(true, null, null);   
                System.Runtime.InteropServices.Marshal.ReleaseComObject(wsheet);   
                System.Runtime.InteropServices.Marshal.ReleaseComObject(wbook);   
                System.Runtime.InteropServices.Marshal.ReleaseComObject(app);   
                wsheet = null;   
                wbook = null;   
                app = null;   
                GC.Collect();   
            }   
        }   
    }  
    本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/LCL_data/archive/2009/05/06/4154784.aspx
      

  5.   

    我自己搞定了!!谢谢2楼和6楼的两位!!string strComm = "insert into [Sheet1$] (产品名称,供应商) values ('Proname','Ibm')"; 
                string strConn = "provider=Microsoft.Jet.OLEDB.4.0;data source=" + _fileName + ";Extended Properties=Excel 8.0;";
                OleDbConnection oleConn = new OleDbConnection(strConn);
                OleDbDataAdapter oleAdap = new OleDbDataAdapter(strComm, oleConn);
                DataSet ds = new DataSet();
                oleConn.Open();
                oleAdap.Fill(ds, "ExcelData");
                oleConn.Close();这就是我的解决办法!
      

  6.   

    测试结果分析结果数据现在是导出到Excel中,在Excel中生成对应图表. Excel中各sheet页使用说明如下:1、Explain页,总体介绍各sheet页的功能及使用说明。如下:TotalReport sheet页:性能呼叫结果数据的简要描述,包含性能呼叫工具和被测系统性能数据两项。SummaryGraph sheet页:性能呼叫工具的性能呼叫数据和被测系统数据的计数器的图表.FreqGraph sheet页:统计被测系统数据的计数器数据分布图,以CPU占有率为例,在一段时间的测试结束以后,分布图会统计出这段时间内位于0->1,1->2,……,99->100各个区间的点的个数。CorelationGraph sheet页:关联图表。数据源页:图表生成的数据源,性能呼叫结果的数据导出.
      

  7.   

    这个我觉得可以在读写的时候判断一下客户端是什么版本Office,然后做不同处理