HeadlyvonNoggin
HeadlyvonNoggin

Reputation: 323

C# ClosedXML assign values from cells in a specific row to string

I'm using ClosedXML elsewhere in my script where I'm iterating through every row like this and it works.

var workbook = new XLWorkbook(ObjectRepPath);
var rows     = workbook.Worksheet(1).RangeUsed().RowsUsed().Skip(1);

foreach (var row in rows)
{
    objPage    = row.Cell(1).GetString();
    objElement = row.Cell(2).GetString();

    if (objPage == page && objElement == element)
    {
        locType = row.Cell(3).GetString();
        locParm = row.Cell(4).GetString();
    }
}

After that I need to pull the data from the cells in a randomly selected row. Here's what I've got so far, which is not working...

var workbook = new XLWorkbook(extFile);
var ws       = workbook.Worksheets.Add("Cell Values");
var rnd      = new Random();
int rowNum   = rnd.Next(2, workbook.Worksheet(1).RangeUsed().RowsUsed().Count());
var dataRow  = ws.Row(rowNum);

string dangit = dataRow.Cell(1).GetString();
System.Diagnostics.Debug.WriteLine("Why is this dang thing not working... " + dangit);

Output: Why is this damn thing not working...

It just comes back empty. No error. Does anyone see something I don't?

Upvotes: 3

Views: 5316

Answers (1)

HeadlyvonNoggin
HeadlyvonNoggin

Reputation: 323

Alright, I found the solution.

I changed the line ... var ws = workbook.Worksheets.Add("Cell Values");

to .... var ws = workbook.Worksheet(1);

and now this works .... Storage.StreetAddress = ws.Cell(xlRow, 1).GetString();

Upvotes: 3

Related Questions