如何將數據庫數據寫入到EXCEL表格中.[此代碼爲讀取SHAREPOINT]

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.SharePoint;
using System.Data;
using System.Data.OleDb;
using System.IO;
using System.Collections.Specialized;


namespace ConsoleApplication1
{
    class Program
    {
        private static string _listname = null;
        public static string ListName { get { return _listname; } set { _listname = value; } }
      
        static void Main(string[] args)
        {


            using (SPSite site = new SPSite("http://192.168.169.10"))
            {
                using (SPWeb web = site.RootWeb)
                {                  
                    ListName = "FluorProjectList";
                    SPList list = web.Lists[ListName];
              
                    SPView view = list.DefaultView;
                
                    StringCollection viewFields = view.ViewFields.ToStringCollection();


                    SPQuery query = new SPQuery();
                    SPListItemCollection items = list.GetItems(query);


                    string[] sql = new string[items.Count];                   
                    string strTemp = "";
                    string strFileName = "";


                    foreach (string fileName in viewFields)
                    {
                        strFileName += "[" +  fileName + "],";
                    }
                    strFileName = strFileName.ToString().Substring(0, strFileName.Length - 1);
       
                    string tableName = "[Similar Projects$]";
                    int i = 0;
                    try
                    {
                        foreach (SPListItem item in items)
                        {


                            sql[i] = "insert into " + tableName + " (" + strFileName + ")       values(";
                            //遍歷字段值                                              
                            foreach (string fieldName in viewFields)
                            {
                                if (item[fieldName] != null)
                                {
                                    //sql的單引號有特殊含義,用來把字符串內容引起來;所以要將text的一個單引號,替換成兩個單引號
                                    strTemp = item[fieldName].ToString().Replace("'", "''"); 
                                    sql[i] += "'" + strTemp + "',";
                                }
                                else
                                {
                                    sql[i] += "'',";
                                }
                            }
                            sql[i] = sql[i].Substring(0, sql[i].Length - 1);
                            sql[i] += ")";


                            i++;


                        }
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.Message);
                        Console.Read();
                    }
                    //用字符串數組,添加記錄到Excel 返回Void
                     AddExcelData("D:/ken/Similar+Projects+updates+-to+MCO-+22Jul2016.xlsx", sql);


                    #region
                    //讀取Excel 【此程序沒用到】
                    //string sql = "select * from " + tableName;
                    //DataTable dt = GetExcelDataTable("D:/ken/Similar+Projects+updates+-to+MCO-+22Jul2016.xlsx",sql);


                    //try
                    //{
                    //    for (int i = 0; i < dt.Rows.Count; i++)
                    //    {
                    //        string temp = dt.Rows[i][1].ToString();
                    //    }
                    //}
                    //catch(Exception ex)
                    //{
                    //    Console.WriteLine(ex.Message);
                    //}
                    #endregion


                }
            }




           
        }
        //添加記錄到Excel 
        public static void AddExcelData(string filePath, string[] SQLStringList)
        {
            //Office 2007
            OleDbConnection conn = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filePath + ";Extended properties='Excel 12.0 Xml;HDR=YES'");
            conn.Open();


            OleDbCommand cmd = new OleDbCommand();
            cmd.Connection = conn;
            cmd.Transaction = conn.BeginTransaction();


            try
            {


                for (int n = 0; n < SQLStringList.Length; n++)
                {
                    string strsql = SQLStringList[n].ToString();
                    if (strsql.Trim().Length > 1)
                    {
                        cmd.CommandText = strsql;
                        cmd.ExecuteNonQuery();
                    }
                }
                cmd.Transaction.Commit();  //提交事務


            }


            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                //事務回滾
                cmd.Transaction.Rollback();
            }
            finally
            {
                conn.Close();
            }


        }




       


    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章