.xlsx(Excel)ファイルからの読み取りに問題があります。私が使用してみました:XLSX(Excel)の読み方は?
var fileName = @"C:\automated_testing\ProductsUploadTemplate-2015-10-22.xlsx";
var connectionString = string.Format("Provider=Microsoft.Jet.OLEDB.4.0; data source={0}; Extended Properties=Excel 8.0;", fileName);
var adapter = new OleDbDataAdapter("SELECT * FROM [workSheetNameHere$]", connectionString);
var ds = new DataSet();
adapter.Fill(ds, "XLSData");
DataTable data = ds.Tables["XLSData"];
// ... Loop over all rows.
StringBuilder sb = new StringBuilder();
foreach (DataRow row in data.Rows)
{
sb.AppendLine(string.Join(",", row.ItemArray));
}
が、原因connectionString
に失敗した場合。だから私は、.xlsx形式のサポートするために、行を更新:
var connectionString = string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=Excel 12.0;", fileName);
を私は得る:
「Microsoft.ACE.OLEDB.12.0」プロバイダは、ローカルマシンに登録されていません。
(ここでの問題は、私は私のリモートテストマシンに新しいソフトウェアをインストールすることはできないですので、私はそれを修正し、他の解決策を見つけるために必要とすることはできませんよ、ということである。)
私もやりますインポートされたデータが簡単な方法で(私は初心者のプログラマーです)、それを反復して行のデータでオブジェクトを作成できるようにする必要があります。私がチェックし
他のアプローチ:
コメント:おそらく私のために動作するようだが、未知の寸法のExcelファイルをサポートしていません(行と列の乱数)。
コメント:(私のExcelファイルの一部では、4-6最初の行のコメントがある最初のものとは異なる行からの設定の列名をサポートして、ヘッダ行ではありません以下のデータ)。
コメント:上記と同じ問題。
コメント:ダウンロードしたパッケージの重量は60メガバイトを超えていたし、それは私の状況では不可能であるシステム上でそれをインストールするために私を必要とします。とにかく、150行に制限されているとコメントしています。
一方私はhttps://code.google.com/p/linqtoexcel/をチェックしようとしますが、他のすべてのアイデアは大歓迎です!
EDIT:ちょうどチェックすることLinqToExcel、上記と同じ問題:
'Microsoft.ACE.OLEDB.12.0' プロバイダはローカルマシンに登録されていません。
EDIT2:
https://stackoverflow.com/a/19065266/3146582
epplus https://epplus.codeplex.com/ – Fredou
@Fredou:それはスプレッドシートを作成しませんか?私は1つから読む必要があります。それの例はありますか? –
それはまた、このstackoverflowの質問http://stackoverflow.com/questions/11685204/reading-excel-spreasheet-using-epplusか、このブログのエントリhttp://blog.fryhard.com/archive/2010を確認し、ファイルをエクセル読むことができます/10/28/reading-xlsx-files-using-c-and-epplus.aspx – Fredou