0
データベースにExcelデータを追加しようとしています。私はシート名でそれを行うことができますが、それはユーザーがアプリケーションを使用することを制限するので、そのユーザーは任意のシート名でExcelファイルをアップロードすることができます。C#シート名のないOleDBへのExcel
これは私のコードです:
public static DataSet ReadExcelFile(string sheetName, string path)
{
using (OleDbConnection conn = new OleDbConnection())
{
DataSet ds = new DataSet();
string Import_FileName = path;
string fileExtension = Path.GetExtension(Import_FileName);
if (fileExtension == ".xls")
conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Import_FileName + ";" + "Extended Properties='Excel 8.0;HDR=YES;'";
if (fileExtension == ".xlsx")
conn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + Import_FileName + ";" + "Extended Properties='Excel 12.0 Xml;HDR=YES;'";
using (OleDbCommand comm = new OleDbCommand())
{
comm.CommandText = "Select * from [" + sheetName + "$]";
comm.Connection = conn;
using (OleDbDataAdapter da = new OleDbDataAdapter())
{
da.SelectCommand = comm;
da.Fill(ds, "Table");
return ds;
}
}
}
}
私は任意のシート名を使用してデータベースにExcelのデータをロードするにはどうすればよいですか?私の場合は、事前
私にはあなたの要求は不明です。Excelファイルには常にシートがあります。何をしたいですか?最初のシートからデータを取り出しますか?すべてのシートを繰り返しますか? –
私は2つのExcelファイルを持っていると思います。そのうちの1つはsheet1としてシート名を持ちます。シート名はsheet2です。私のコードでは、両方のXMLデータをデータベースに追加できます。 –
comm.CommandText = "[* sheetName + "$]"; sheetNameは任意の文字列にすることができます –