私は長い間検索してきましたが、私が間違っていることを見つけることができません。
スプレッドシートをアップロードする (動作確認済み) Web アプリがあり、スプレッドシートを解析して GridView に入力することになっています。簡単そうに見えますが、データは表示されません。
私がテストしているスプレッドシート (アップロードとして; アップロードは期待どおりに動作します) は、単純な単一タブのスプレッドシートで、すべてが退屈なバニラです... 1 行のデータを持つ列名を持つ 3 つの列 (合計 2 つの入力された行、これが機能すると拡張されます)。タブ名は以下でCRPRList
使用されOleDbDataAdapter
ます。
ページにエラーは表示されません。GridView に値が入力されないだけです。
ASP.net の GridView は次のとおりです。
<asp:GridView ID="TopicsTbl" runat="server"
AllowSorting="False"
AllowPaging="False"
AutoGenerateColumns="False">
<Columns>
<asp:BoundField HeaderText="CR" DataField="CR" />
<asp:BoundField HeaderText="PR" DataField="PR" />
<asp:BoundField HeaderText="Summary" DataField="Summary" />
</Columns>
</asp:GridView>
私はそれを次のコードに落とし込みました。つまり、これまですべてをテストしたということです。エラーはなく、期待どおりに動作しているように見えます... GridView が設定されないことを除いて:
OleDbDataAdapter adapter = new OleDbDataAdapter("SELECT * FROM [CRPRList$]", XLSConnect);
DataSet ds = new DataSet();
adapter.Fill(ds, "CRPRList");
DataTable data = ds.Tables["CRPRList"];
TopicsTbl.DataSource = data;
XLSConnect
文字列は、ファイルが xls か xlsx かによって異なります。
string strConn;
if (fileType.ToLower() == "xls" || fileType.ToLower() == "xlsx") {
strConn = (fileType == "xlsx") ? string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=\"Excel 12.0\"", filePath) : string.Format("Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties=\"Excel 8.0\"", filePath);
XLSConnect = new OleDbConnection(strConn);
return true;
} else return false; //throw new Exception("file extension is not registering");
私は何が欠けていますか?それとも私は何か間違ったことをしていますか?
私のGridViewが正しく設定されていないか、スプレッドシートの解析の理解が完全ではないと推測しています...しかし、かなりずれている可能性があります!
ありがとう