我需要读取一些 excel 数据的格式化值(日期、数字和文本的混合,我在运行前不知道其格式)作为一系列行,丢弃所有空白单元格。
我对输入列进行了自动调整,因此理论上列现在足够宽,这些单元格的显示值不应该是####,但自动调整似乎对我的输出数据没有影响。
int rowCount = allCells.Rows.Count;
int colCount = allCells.Columns.Count;
List<List<string>> nonBlankValues = new List<List<string>>();
//to stop values coming out as series of #### due to column width, resize columns
foreach (Excel.Range col in allCells.Columns)
{
col.AutoFit();
}
for (int i = 0; i < rowCount; i++)
{
List<string> row = new List<string>();
for (int j = 0; j < colCount; j++)
{
Excel.Range cellVal = (Excel.Range)allCells.Cells[i + 1, j + 1]; //Excel ranges are 1 indexed not 0 indexed
string cellText = cellVal.Text.ToString();
if (cellText != "")
{
row.Add(cellText);
}
}
if (row.Count > 0)
{
nonBlankValues.Add(row);
}
}