如何遍历整个行的对象[,]

时间:2014-01-02 13:43:04

标签: c# arrays excel

我每天都在ftp上获得优秀。我需要解析它并每天写入DB2表。你可以理解;我的Excel具有固定顺序的固定列,因此我可以逐行迭代而不是逐个单元地迭代以获得性能。目的是将每个(object[]添加到数据表中,因此复杂性可能为O(n)

我知道锯齿状数组可以像这样迭代,而不是我想问的多维数组。但是,也许在我的案例中可能存在诡计。我有一种方法,我卡住了,需要你的帮助..

1-我从excel得到了整个范围(不能使用sheed.UsedRange,表格很脏)

int usedRowCount = sheet.UsedRange.EntireRow.Count;
string usedRange = string.Format("A1:DG{0}", usedRowCount);
object[,] rangeData = (System.Object[,])sheet.get_Range(usedRange).Cells.get_Value(missing);

2-这里我想用System.Buffer.BlockCopy进行迭代以将整行放入临时对象[](因为我有固定的列数据序列)但是我看到BlockCopy要求数组类型是原始的,所以这没用。但我觉得解决方案很接近:)

所以,任何帮助,代码,方法(或解释,即使在我的情况下,这是不可能的)是值得赞赏的;非常感谢。

1 个答案:

答案 0 :(得分:0)

您可以使用此代码获取行数和列数,然后遍历行。

int rows = array.GetLength(0)  -> Gets first dimension size

int columns = array.GetLength(1)  -> Gets second dimension size

这是唯一的选项,因为Array.Copy仅适用于具有相同尺寸的阵列。 Buffer.BlockCopy也不是一个选项,因为如下所述,它只适用于基元。