获取具有特定工作表名称的所有数据

时间:2014-11-24 22:26:42

标签: c# asp.net-mvc-4

有人能告诉我如何在MS-SQL表中插入特定工作表名称来Excel所有数据。我在MVC 5中使用C#代码,这是我的代码C#和MVC 5

                    string path1 = @"c:\users\vaio\documents\visual studio 2013\Projects\test\Test2\Content\";

                    string fileFullPath = Path.GetFullPath(path1);
                    excelConnectionString = "Provider=Microsoft.Jet.OleDb.4.0; Data Source=" + fileFullPath + ";Extended Properties=\"text;HDR=YES;FMT=Delimited\"";
                }

                DataSet data = new DataSet();

                foreach (var sheetName in GetExcelSheetNames(excelConnectionString))
                {
                    using (OleDbConnection con = new OleDbConnection(excelConnectionString))
                    {
                        var dataTable = new DataTable(sheetName);
                        string query = string.Format("SELECT * FROM [{0}]", sheetName);
                        con.Open();
                        OleDbDataAdapter adapter = new OleDbDataAdapter(query, con);
                        adapter.Fill(dataTable);
                        data.Tables.Add(dataTable);

                        using (TtestContext dc = new TtestContext())
                        {
                            for (int i = 0; i < dataTable.Tables[0].Rows.Count; i++)
                            {
                                string conn = ConfigurationManager.ConnectionStrings["TtestContext"].ConnectionString;
                                SqlConnection con = new SqlConnection(conn);
                                string query2 = "Insert  into  ExcelTemps(Courier,F2,F3,F4,F5,F6,F7,F8,F9,F10) Values('"
                                + dataTable.Tables[0].Rows[i][0].ToString().Replace("'", "''") + "','"
                                + dataTable.Tables[0].Rows[i][1].ToString().Replace("'", "''") + "','"
                                + dataTable.Tables[0].Rows[i][2].ToString().Replace("'", "''") + "' ,'"
                                + dataTable.Tables[0].Rows[i][3].ToString().Replace("'", "''") + "','"
                                + dataTable.Tables[0].Rows[i][4].ToString().Replace("'", "''") + "','"
                                + dataTable.Tables[0].Rows[i][5].ToString().Replace("'", "''") + "','"
                                + dataTable.Tables[0].Rows[i][6].ToString().Replace("'", "''") + "','"
                                + dataTable.Tables[0].Rows[i][7].ToString().Replace("'", "''") + "','"
                               + dataTable.Tables[0].Rows[i][8].ToString().Replace("'", "''") + "','"
                               + dataTable.Tables[0].Rows[i][9].ToString().Replace("'", "''") + "','"
                                   + dataTable + "')";
                                con.Open();
                                SqlCommand cmd = new SqlCommand(query2, con);
                                cmd.ExecuteNonQuery();
                                con.Close();
                            }
                        }
                    }
                }
            }
        }
        return View();
    }

    static string[] GetExcelSheetNames(string connectionString)
    {
        OleDbConnection con = null;
        DataTable dt = null;
        con = new OleDbConnection(connectionString);
        con.Open();
        dt = con.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);

        if (dt == null)
        {
            return null;
        }
        String[] excelSheetNames = new String[dt.Rows.Count];
        int i = 0;

        foreach (DataRow row in dt.Rows)
        {
            excelSheetNames[i] = row["TABLE_NAME"].ToString();
            i++;
        }
        return excelSheetNames;
    }

}

0 个答案:

没有答案