0
ExcelをデータベースにインポートするためのC#コードがいくつかありますが、最初のシート(Sheet1
)からSQL Serverデータベースにのみインポートできます。 Excelファイルの2番目のシート(Sheet2
)からデータをデータベースにインポートします。私にそのことを教えるためにコードを修正してください。C#特定のExcelシートからSQL Serverにデータをインポート
private void button1_Click(object sender, EventArgs e)
{
OpenFileDialog ope = new OpenFileDialog();
ope.Filter = "Excel Files|*.xls;*.xlsx;*slsm";
if (ope.ShowDialog() == DialogResult.Cancel)
return;
FileStream stream = new FileStream(ope.FileName, FileMode.Open);
IExcelDataReader excelReader = ExcelReaderFactory.CreateOpenXmlReader(stream);
DataSet result = excelReader.AsDataSet();
DataClasses1DataContext conn = new DataClasses1DataContext();
foreach(DataTable table in result.Tables)
{
//Default start value of foreach statement is 0
//Please tell me: How to count dr from 1 instead of 0???
foreach (DataRow dr in table.Rows)
{
//if index of dr==1, then continue
if (table.Rows.IndexOf(dr) == 0)
{
continue;
}
test addtable = new test()
{
id = Convert.ToInt32(dr[0]),
name = Convert.ToString(dr[1]),
surname = Convert.ToString(dr[2]),
age = Convert.ToInt32(dr[3])
};
conn.tests.InsertOnSubmit(addtable);
}
}
conn.SubmitChanges();
excelReader.Close();
stream.Close();
MessageBox.Show("Import table completed!");
}
インデックスはゼロから始まります(0)。ブック内に "Second"シートを取得するには(もしあれば) 'result.Tables [1]'を試してみてください...あなたのコードはすべてのシートをループしているようです。 – JohnG
可能な回答と同様の質問を見る[ここ](http://stackoverflow.com/questions/21849756/excel-data-reader-issues-column-names-and-sheet-selection) – Frederic