0

まず、Excel ファイルをインポートし、データをデータ テーブルに保存してから、Gridview に配置します。列ヘッダー名を行セルにコピーしたかったのですが、入力文字列が正しい形式ではないというエラーが発生していました。列のデータ型を変更してみましたが、うまくいきました。ただし、コピーされたデータは元のデータとは異なります。私が使用しているコードは次のとおりです。

DataTable dtf1 = new DataTable();
 OleDbDataAdapter adapter = new OleDbDataAdapter(sql, con);
adapter.FillSchema(dtf1, SchemaType.Source);
            dtf1.Columns[6].DataType = typeof(string);
            adapter.Fill(dtf1);

 dtf1.Rows[0][6] = dtf1.Columns[6].ColumnName.ToString();

元のデータは郵便番号「3210」ですが、何か「F7」としてコピーしています。

4

1 に答える 1

1

ここで解決策を見つけましたOleDB & mixed Excel datatypes: missing data。問題は、Excel が数値を無視するデータをインポートしていたときでした。接続文字列を変更すると、問題が解決しました。

OleDbConnection con = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + ServerPath + ";Extended Properties='Excel 8.0;IMEX=1;HDR=NO;TypeGuessRows=0;ImportMixedTypes=Text'");

以前は

OleDbConnection con = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + ServerPath + ";Extended Properties='Excel 8.0;IMEX=1'");
于 2012-07-11T02:55:53.963 に答える