0

完全に停止しました。ExcelからMicrosoftSQLServer2008データベースにデータをインポートする必要があります。特定の行から始まる特定の列には、抽出してデータベースに適切に挿入する必要のあるデータ情報が含まれており、ファイル自体がストリームとして提供されます。

MicrosoftのソリューションであるExcel12.0Object Libraryを調べてきましたが、実稼働環境にインストールされているOfficeに依存しているようです。または、Officeがインストールされていない環境にアプリケーションを展開することは可能ですか?

また、 Excel Data Readerを一瞥しましたが、 xlsxまたはOffice 2010のドキュメントでは機能していないようで、「ファイルの署名が正しくありません」と文句を言っています。

あなたの推薦は何ですか?

4

4 に答える 4

1

Excel Data Readerは問題ないはずです。使用したことがありますか:

//2. Reading from a OpenXml Excel file (2007 format; *.xlsx)
IExcelDataReader excelReader = ExcelReaderFactory.CreateOpenXmlReader(stream);

xlsx ファイルを開くには?

于 2011-11-21T14:02:36.700 に答える
1

Excel ファイルの解析にはMicrosoft.Office.Interop.Excelを使用 します。通常、展開先のコンピューターには Office がインストールされている必要があります。これにより、Interop ライブラリがグローバル アセンブリ キャッシュに配置されます。これを回避するには、展開プロジェクトで DLL をコピーします。相互運用ライブラリをアセンブリに埋め込むこともできます。

相互運用を使用した例を次に示します: http://support.microsoft.com/kb/302084

于 2011-11-21T14:02:59.100 に答える
1

データを読み込んでいるだけで、そこから何を求めているかがわかっている場合は、通常、OLEDB を使用してデータを読み込んでから、必要な処理を行います。

DbDataReader を使用して行をすばやく移動し、ConnectionStringと SheetNameを指定する簡単なサンプル

using System.Data.Common;
using System.Data.OleDb;

using (OleDbConnection connection = new OleDbConnection(ConnectionString))
{
    connection.ConnectionString = ConnectionString;
    connection.Open();
    using (DbCommand command = connection.CreateCommand())
    {
        command.CommandText = "SELECT * FROM [" + SheetName + "]";
        using (DbDataReader DR = command.ExecuteReader())
        {
            while (DR.Read())
            {
            // Read your data here.
            }
        }
    }
}

ここで別のを見つけることができます。

于 2011-11-21T14:04:03.890 に答える