将二位数组转成DataTable,网上找的不知道成不成
我们提供的服务有:成都做网站、成都网站建设、微信公众号开发、网站优化、网站认证、阎良ssl等。为千余家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的阎良网站制作公司
public static DataTable ConvertToDataTable(string[,] arr)
{
DataTable dataSouce = new DataTable();
for (int i = 0; i arr.GetLength(1); i++)
{
DataColumn newColumn = new DataColumn(i.ToString(), arr[0, 0].GetType());
dataSouce.Columns.Add(newColumn);
}
for (int i = 0; i arr.GetLength(0); i++)
{
DataRow newRow = dataSouce.NewRow();
for (int j = 0; j arr.GetLength(1); j++)
{
newRow[j.ToString()] = arr[i, j];
}
dataSouce.Rows.Add(newRow);
}
return dataSouce;
}
Dim xlsApp As Excel.Application
Dim xlsBook As Excel.Workbook
Private Sub Command1_Click()
Dim I, J As Integer
Dim A(500, 2)
Set xlsApp = Excel.Application
xlsApp.Visible = False
'假设Excel文件在:D:\Book1.xls
Set xlsBook = xlsApp.Workbooks.Open("D:\Book1.xls")
For I = 1 To 500
For J = 1 To 2
A(I - 1, J - 1) = xlsapp.cells(I, J)
Next J
Next I
'以下是退出Excel
xlsBook.Close (False)
xlsApp.Quit
Set xlsApp = Nothing
'=================================
'Excel中的500×2的数据已读入到数组A()中,以下可以添加你要运算的代码。
'=================================
End Sub
结论:数组声明方式和访问方式不同导致。
先贴一个测试通过的数组遍历方式的代码:
二维数组遍历
注意遍历使用的方法,两层数据,每次的访问方式,是直接对该元素数组填写索引值获取。
所以你的正确访问方式是:
Debug.Print d(1)(1)
补充知识:为什么使用二维数组的方式访问不到?
因为这与数组的声明方式有关。本题目中使用 Dim d 的方式,声明了一个variant类型的变量。
variant data type
接着赋值的时候,给与了一个二维数组,所以范文方式必须与赋值方式持平。
如何正确使用一个二维数组?
官方文档给出的方式,是显式声明数组的维度,并挨个赋值。VB就是这样。比如下面的示例:
二维数组的声明和使用
写在最后
总而言之,使用明确的数据类型声明二维数组,是根据索引正确访问数组的关键。
我是@程序员小助手,持续分享编程知识,欢迎关注。
for i =0 to ...
for j =0 to ...
keyarray(i,j)=
next
next
双重循环,赋值和读取一样