怎么将excel中数据用C#读取并存在一个数组中?

d_eng123456 2015-03-04 01:46:46

如图,excel中数据怎么放入c#的数组中,如a[0,0]=22200,a[1,0]=21500
...全文
2249 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
marswangbo 2015-03-04
  • 打赏
  • 举报
回复
引用 9 楼 u014163310 的回复:
[quote=引用 8 楼 marswangbo 的回复:] [quote=引用 7 楼 u014163310 的回复:] [quote=引用 4 楼 sp1234 的回复:] 是的,读取Excel工作表中的数据可以这样写
var worksheet = workbook.Worksheets["工作表1"];
var maxN = worksheet.Range["A1"].End[excel.XlDirection.xlDown].Row;   //从A1向下查找最低下的一个数据行的坐标
object[,] arr = worksheet.Range["A2:H" + maxN].Value2;
读取的数据放到二维数组 arr 中。
多谢指导,我能再问下var worksheet = workbook.Worksheets["工作表1"],里面“工作表1”是不是excel文件的存储地址,比如我excel文件放在c盘,是不是应该写成“c:/工作表1.xls”?[/quote] 这个工作表1,是你这个文件中的某一个具体的工作簿名,就是你新建一个XLS文件,打开后,在下面能看到的sheet1,sheet2,sheet3这个。[/quote] 哦,那我这个excel文件是自己创建的,应该放在哪个位置C#才能读取呢,或者是要用什么语句来读取这个excel文件?[/quote] workbook.open读取你的EXCEL文件。。
d_eng123456 2015-03-04
  • 打赏
  • 举报
回复
引用 8 楼 marswangbo 的回复:
[quote=引用 7 楼 u014163310 的回复:] [quote=引用 4 楼 sp1234 的回复:] 是的,读取Excel工作表中的数据可以这样写
var worksheet = workbook.Worksheets["工作表1"];
var maxN = worksheet.Range["A1"].End[excel.XlDirection.xlDown].Row;   //从A1向下查找最低下的一个数据行的坐标
object[,] arr = worksheet.Range["A2:H" + maxN].Value2;
读取的数据放到二维数组 arr 中。
多谢指导,我能再问下var worksheet = workbook.Worksheets["工作表1"],里面“工作表1”是不是excel文件的存储地址,比如我excel文件放在c盘,是不是应该写成“c:/工作表1.xls”?[/quote] 这个工作表1,是你这个文件中的某一个具体的工作簿名,就是你新建一个XLS文件,打开后,在下面能看到的sheet1,sheet2,sheet3这个。[/quote] 哦,那我这个excel文件是自己创建的,应该放在哪个位置C#才能读取呢,或者是要用什么语句来读取这个excel文件?
marswangbo 2015-03-04
  • 打赏
  • 举报
回复
引用 7 楼 u014163310 的回复:
[quote=引用 4 楼 sp1234 的回复:] 是的,读取Excel工作表中的数据可以这样写
var worksheet = workbook.Worksheets["工作表1"];
var maxN = worksheet.Range["A1"].End[excel.XlDirection.xlDown].Row;   //从A1向下查找最低下的一个数据行的坐标
object[,] arr = worksheet.Range["A2:H" + maxN].Value2;
读取的数据放到二维数组 arr 中。
多谢指导,我能再问下var worksheet = workbook.Worksheets["工作表1"],里面“工作表1”是不是excel文件的存储地址,比如我excel文件放在c盘,是不是应该写成“c:/工作表1.xls”?[/quote] 这个工作表1,是你这个文件中的某一个具体的工作簿名,就是你新建一个XLS文件,打开后,在下面能看到的sheet1,sheet2,sheet3这个。
d_eng123456 2015-03-04
  • 打赏
  • 举报
回复
引用 4 楼 sp1234 的回复:
是的,读取Excel工作表中的数据可以这样写
var worksheet = workbook.Worksheets["工作表1"];
var maxN = worksheet.Range["A1"].End[excel.XlDirection.xlDown].Row;   //从A1向下查找最低下的一个数据行的坐标
object[,] arr = worksheet.Range["A2:H" + maxN].Value2;
读取的数据放到二维数组 arr 中。
多谢指导,我能再问下var worksheet = workbook.Worksheets["工作表1"],里面“工作表1”是不是excel文件的存储地址,比如我excel文件放在c盘,是不是应该写成“c:/工作表1.xls”?
  • 打赏
  • 举报
回复
如果你的公司给你时间去学习一下Excel对象体系架构的使用,那么我建议你去一些vba的论坛去学习,例如可以在Excel-Home论坛注册一个账号,并且买2-3本Office VBA 开发专著,然后再看看vsto的开发方面的东西。因为在那里对于Excel的数据结构体系,对于Range对象、excel.XlDirection.xlDown枚举等等,都可以看到比较多、比较专业的应用。 许多人图省事而抄两小段 Office 操作代码,那往往是只能解决无关紧要的问题的,不是产品级的代码。
  • 打赏
  • 举报
回复
对于excel的操作,千万不要“循环”操作。因为那是跨COM、跨进程通讯的。 对于excel的操作,读取或者写入数据,就是通过 rang.Value2“一步到位”地进行读写,才能保证效率。
  • 打赏
  • 举报
回复
是的,读取Excel工作表中的数据可以这样写
var worksheet = workbook.Worksheets["工作表1"];
var maxN = worksheet.Range["A1"].End[excel.XlDirection.xlDown].Row;   //从A1向下查找最低下的一个数据行的坐标
object[,] arr = worksheet.Range["A2:H" + maxN].Value2;
读取的数据放到二维数组 arr 中。
努力的小铺 2015-03-04
  • 打赏
  • 举报
回复
1楼说的对,将excel读出放到一个datatable,然后定义一个数组,根据行列号循环往数组里面插就行了。
marswangbo 2015-03-04
  • 打赏
  • 举报
回复
取选中的range的value2,转换成数组即可。。。不过这数组起始是从1开始不是0.。。
於黾 2015-03-04
  • 打赏
  • 举报
回复
看这里 这个例子是读出来先放DataTable里 你改成根据行数和列数定义个二维数组赋值一下就行了

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧