我如何通过互操作获取xlsx中的全部/全部工作表?

时间:2019-07-01 03:40:53

标签: c# excel-interop

我如何才能获得所有具有10个“ ROW”的工作表(例如3个表)并将其合并到另一个新表中?问题:我得到的结果是它遍历/读取了仅显示10行的最后一张纸/NO.3。无法显示30行的工作表中总行的所有工作表。

我尝试的内容:我尝试遍历3的工作表并遍历                这是10行。

kubectl top node

我得到的是:新工作表中的最后几行有10行。 我的目标是:在新工作表中总工作表中有30行。

1 个答案:

答案 0 :(得分:1)

您可以创建包含所有行的值或使用count变量的数据列表。 希望对您有帮助,我的朋友:))

//解决方案1:使用计数变量

int k = 0;
for (int sheet = 1; sheet <= 3; sheet++)
{
    xlworkSheet = (Excel.Worksheet)xlworkbook.Worksheets.get_Item(sheet);

    //rw is equal to 10 rows
    for (int row = 0; row <= rw; row++)
    {    

       //extract out excel value and store it into empID variable    
       var empID=(string)(xlworkSheet.Cells[row,1]as(Excel.Range).Value.ToString();

       //store empID into employeeobj               
       employeeobj.employeeID = empID;

       xlNewSheet2.Cells[k, 1].Value = employeeobj.employeeID;
       k++;
     }
}

//解决方案2:使用列表

List<string> data = new List<string>();
for (int sheet = 1; sheet <= 3; sheet++)
{
    xlworkSheet = (Excel.Worksheet)xlworkbook.Worksheets.get_Item(sheet);

        //rw is equal to 10 rows
     for (int row = 0; row <= rw; row++)
     {    

         //extract out excel value and store it into empID variable    
         var empID=(string)(xlworkSheet.Cells[row,1]as(Excel.Range).Value.ToString();

         //store empID into employeeobj               
         employeeobj.employeeID = empID;
         //xlNewSheet2.Cells[row, 1].Value = employeeobj.employeeID;
         data.Add(employeeobj.employeeID);
       }
 }

//最后,只需将数据绑定到新表即可。