首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

C# 向Excel文件中增添数据

2013-10-14 
C# 向Excel文件中添加数据本帖最后由 kingchane 于 2013-10-09 21:51:40 编辑问题是这样的:xls文件中以日

C# 向Excel文件中添加数据
本帖最后由 kingchane 于 2013-10-09 21:51:40 编辑 问题是这样的:
    xls文件中以日期为序,已存有很多列的数据,还有几个根据该数据绘制的图表。在程序中,我先读取了该xls文件,存入到System.Data.DataSet的变量中。具体的实现代码是:


        /// <summary>
        /// 读取Excel文件,内容存储在DataSet中
        /// </summary>
        /// <param name="opnFileName">Excel文件路径</param>
        /// <returns>DataSet</returns>
        public static DataSet ExcelToDataSet(string FileName)
        {
            string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + FileName + ";Extended Properties="Excel 8.0;HDR=YES;IMEX=1"";
            OleDbConnection objConn = new OleDbConnection(strConn);
            DataSet ds = new DataSet();
            try
            {
                objConn.Open();

                System.Data.DataTable schemaTable = objConn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, null);

                string tableName = schemaTable.Rows[0][2].ToString().Trim();    //获取 Excel 的表名,默认值是sheet1
                string strSql = "select * from [" + tableName + "]";
                OleDbCommand objCmd = new OleDbCommand(strSql, objConn);
                OleDbDataAdapter myData = new OleDbDataAdapter(strSql, objConn);
                myData.Fill(ds, tableName);//填充数据
            }
            catch (Exception ex)
            {
                Console.WriteLine("错误!:" + ex.Message.ToString());
            }
            finally
            {
                objConn.Close();
                objConn.Dispose();
            }
            return ds;
        }


    
    上述代码其实就是读Excel文件到DataSet,程序没有什么问题。
    现在我需要将未更新的若干日期的数据添加到上述xls文件的末尾,而不必将DataSet和未更新的那些数据全部写入到一个新的文件中,因为我还要那些图表进行分析。

    这个问题应该不难,但最近把自己困住好几天了,平时还要上班没多少时间认真从头开始,希望有网友帮忙解决下吧? c# excel 添加数据
[解决办法]
OleDbConnection? 支持select,当然也支持insert
[解决办法]
这个就简单了啊  等于就是向EXCEL里面写数据  可以直接用NPOI  也可以直接微软。net的
下面代码
是直接用net的  注意要先添加引用
最后行最后列都
EXCEL单元格也给你了  这个代码直接在使用中
我截取了前部分

OpenFileDialog2.Filter = "EXCEL文件
[解决办法]
*.xlsx;*.xls;*.xlsm
[解决办法]
所有文件(*.*)
[解决办法]
*.*";
OpenFileDialog2.FilterIndex = 1;
if (OpenFileDialog2.ShowDialog()==DialogResult.OK)
{
    Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();//引用Excel对象
    Microsoft.Office.Interop.Excel.Workbook workbook = excel.Workbooks.Add(this.OpenFileDialog2.FileName);


    excel.DisplayAlerts = false;
    excel.UserControl = true;
    excel.Visible = false;
    Microsoft.Office.Interop.Excel.Worksheet sheet = workbook.Worksheets.get_Item(1) as Microsoft.Office.Interop.Excel.Worksheet;
    int nRows = sheet.UsedRange.Rows.Count;
    int nCols=sheet.UsedRange.Columns.Count;
   //string content= sheet.Cells[3, 1].value; //第三行第一列值不从0开始

热点排行