C#读写工作表(2)——行列索引的设定

操作Excel文件时行列值的设定

使用不同的方法对excel文件进行读写等操作时,需要使用每种方法对应的函数与属性。针对不同的方法,可能会存在定义方式不同,或者属性名相同的情况。
例如:如果在程序中同时调用了System.DataMicrosoft.Office.Interop.Excel ,则再使用DataTable类时会报错,两个引用库中都存在DataTable的定义,定义冲突,无法确定你使用的是哪一个。因此在调用多种方法时,最好使用一个文件名,将调用的方法进行一个明确的声明:

using Data=System.Data;
using Excel=Microsoft.Office.Interop.Excel;

1、行列索引初始值的设定

在C#中操作Excel表格时,第一行与第一列的索引初始值设置具体是为0或1,取决于使用的Excel库或API的设计

  • 在各种方法中,有一部分Excel库或API将行和列的索引从0开始计数,这是因为在编程中,数组和集合的索引通常从0开始,如此设计契合数组的设计方法,降低了编程的复杂程度。
    例如,使用NPOI库时,行和列的索引都从0开始计数,因此第一行可以表示为:

    IRow firstrow = sheet.GetRow(0); //定义了一个行类,并且将sheet工作表中的第一行赋值给该定义的行

  • 除此之外,也有很大一部分的Excel库或API则将行和列的索引从1开始计数,这是因为在Excel工作表的设定当中,行和列的索引都是从1开始,如此设计也可降低编码的复杂度。
    例如,使用EPPlus库时,其中行和列的索引都从1开始。

    ws.Cells[1,1].Text.ToString(); //表示获取工作表中的位于第一行第一列的单元格中的数据,并将其转换为字符类型

  • 在使用指定的Excel库或API时,首先需要查阅其文档或示例代码,提前了解具体的行列索引计数方式以及相应的事件和方法,不同的方法库中对工作簿、工作表以及行列值等属性的定义存在不同,确保正确的引用并操作Excel表格中的数据。

2、DataTable表格的使用

在C#的多个方法中都含有DataTable这一定义,若是调用的库过多,很容易出现DataTable定义重复,无法确定具体是哪个库中的调用这一错误。因此,我们在引用各个库时,最好将它们先用特定的字符将其定义。同样,不同的库中可能会出现工作簿或者工作表的定义重复,也可以采用这种方法进行区分。

using Excel=Microsoft.Office.Interop.Excel;
using Data=System.Data;

Excel.Application excel=new Excel.Application();        //定义一个excel文件
Excel.Workbook workbook=excel.workbook.Open(path);      //创建一个新的工作簿
Excel.Worksheet sheet=workbook.Worksheets[1];           //获取该工作簿中的第一个工作表

Data.DataTable table=new Data.DataTable();              //创建一个新的Datatable表格
  • DtataTable 数据表使用时,必须提前对行和列进行定义。如果未对需要使用的行和列进行定义,便会在之后对该数据表的读写时,出现“无法找到对应列或行”这一错误,必然会导致无法向工作表中存入数据。

  • 对工作表行列的定义使用 data.Columns.Adddata.Rows.Add 两句进行定义,表示在 DataTable 数据表中新增行获列。但是,该语句一次只能增加一行或者一列,因此如果需要提前设置数据表的行列属性,可以使用一个循环语句进行操作,让其重复增加行列数,一直到满足使用为止。

    可以将其理解为一次只能定义一个单元格,即必须定义了行和列这一二维坐标之后,获得具体的位置,才可将数据写入其中 。

  • 6
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值