10

私はいくつかのオンラインリソースをチェックしました、多分私は盲目ですが、私はまだこれに対する答えを見つけることができませんでした。

ファイルをアップロードしてストリームに変換し、SpreadSheetGearにフィードしています。ここで、すべての行をループしてデータを読み取る必要があります(これは問題ありません)。これまでの私のコードは次のとおりです。

IWorkbook wb = Factory.GetWorkbookSet().Workbooks.OpenFromStream(file.InputStream);
IWorksheet ws = wb.ActiveWorksheet;
IRange cells = ws.Cells;

for (int i = 2; i <= cells.RowCount; i++)
{
    //Code for every row
    for (int x = 1; x <= cells.ColumnCount; x++)
    {
         //Code for every column
    }
}

問題は次のとおりです。cells.RowCountは1048576に等しく、これは明らかにExcelの行数の上限です。データを持つ行の数を返すSpreadSheetGearへの呼び出しはありますか?提供されるスプレッドシートには500〜2,000行の行が含まれる可能性があるため、固定量を使用することはできません。

SpreadSheetGearはそれほど広く使用されていない可能性があることは理解していますが、とにかくここで腕を上げるチャンスがあると思いました。

乾杯!

編集 :

誰かがwhileループを使用すると言う前に、行が空になる可能性があるため、null文字列をチェックするのは少し面倒です。

4

1 に答える 1

11

いつものように、私自身の質問に答えました。

とにかく、最終的IWorksheet.UsedRangeに使用されたセルだけを返すものが見つかりました。

于 2011-06-28T15:56:10.983 に答える