如何将旧 Excel 文件中多张工作表中的数据导出到新 Excel 文件中的一张工作表中

生活

我试图导出包含多张工作表的 excel 文件,并且每张工作表都有一个数据(可能是 50-70 行)。

好吧,在旧的 Excel 文件中,它包含大约 169 个工作表,因此当您将 169 和 50 相乘时,新 Excel 文件中将包含 8450 行

但是当我尝试执行代码时,结果将只包含 500 行。这是我正在尝试的代码

private void button2_Click(object sender, EventArgs e)
{
FileInfo fileInfo = new FileInfo("C:\\Documents\\testFile.xlsm"); 
            string full = fileInfo.DirectoryName + "\\testResult.xlsx"; //Location for new Excel file that contain the result

            xlApp = new Excel.Application();
            xlWb = xlApp.Workbooks.Open("C:\\Documents\\testFile.xlsm");//Open the file
            xlWS = xlWb.Sheets[xlWb.Sheets.Count];//Count the sheets
            xlApp1 = new Excel.Application();
            xlWb1 = xlApp1.Workbooks.Add();
            int roww;//variable to save last number of row in the new excel file


            for (int i = 2; i <xlWb.Sheets.Count; i++) // looping
            {
                xlWb.Sheets[i].Activate();
                xlRange = xlWS.UsedRange;
                row = xlRange.Rows.Count;
                col = xlRange.Columns.Count;


                xlWS1 = (Excel.Worksheet)xlWb1.Worksheets.get_Item(1);
                xlRange1 = xlWS1.UsedRange;
                roww = xlRange1.Rows.Count;
                fulldata = new string[row][];
                //for transfer data to temp variable
                for (int j = 0; j < fulldata.Length; j++)
                {
                    fulldata[j] = new string[col];

                }
                for(int k = 0 ; k<row;k++)
                {
                    for (int l = 0; l < col; l++)
                    {
                        fulldata[k][l] = xlWS.Cells[k + 1, l + 1].value2.ToString();
                    }
                }
                //too export the data
                if (roww == 1) //if to count how many roww there is in the new file, if there is no data then it just put the data from the first row
                {
                    for (int k = 0; k <row; k++)
                    {
                        for (int l = 0; l < col; l++)
                        {
                            xlWS1.Cells[k + 1, l + 1] = fulldata[k][l];
                        }
                    }
                }
                else // if the file contain data from last sheet *means there will be more than 1 rows already fiiled
                {
                    for (int k = 0; k < row; k++)
                    {
                        for (int l = 0; l < col; l++)
                        {
                            xlWS1.Cells[roww + 1, l + 1] = fulldata[k][l];
                        }
                    }
                }
            }
            xlWb.Save();
            xlWb.Close();
            xlWb1.SaveAs(full, Excel.XlFileFormat.xlOpenXMLWorkbook, missing, missing,
            false, false, Excel.XlSaveAsAccessMode.xlNoChange, missing, missing, missing, missing, missing);
            xlWb1.Close();
            closeExcel(xlApp);
            closeExcel(xlApp1);
}

预期的结果是结果将有 8450 行,其中包含我要导出的多个工作表中的数据

实际结果只有 500 行,也许有人可以纠正我的代码,我不知道我在这里错过了什么

akg179

在上面的代码中,在for循环内,在else块内(在新 Excel 中的工作表已经有一些数据的情况下添加值)

您正在设置:

xlWS1.Cells[roww + 1, l + 1] = fulldata[k][l];

在这里,您没有增加Cells属性的行值由于rowwfor循环执行期间将包含相同的数据,因此您总是要在同一行中写入数据。

这里应该是

xlWS1.Cells[roww + k + 1, l + 1] = fulldata[k][l];

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将 PyCharm 文件中的数据导出到 Excel 工作表中?

来自分类Dev

将多个 Excel 文件合并到一张 Excel 工作表中,无需复制公式和重复数据

来自分类Dev

如何将几个文件的文件名导出到Excel工作表中?

来自分类Dev

如何将多个数据表导出到单个Excel文件中的多个工作表

来自分类Dev

Excel Vba - 如何将匹配的行从一张工作表复制并粘贴到另一张工作表中完全匹配的行下方

来自分类Dev

如何仅将Excel中的一个工作表导出到单个htm文件?

来自分类Dev

如何在Excel中仅对一张工作表启用宏

来自分类Dev

将大量行从一张工作表复制到另一张工作表,但Excel 2010中的空白行除外

来自分类Dev

VBA Excel将行从一张工作表复制到另一张工作表中具有特定值的行

来自分类Dev

将 Excel 中匹配记录的行值从一张工作表复制到另一张工作表

来自分类Dev

如何将一张excel文件导入到access数据库中?

来自分类Dev

将列表列表以CSV格式导出到单独的文件或Excel工作表中

来自分类Dev

如何使用 Pandas 将我的 python 网页抓取数据导出到现有 excel 文件中的特定工作表?

来自分类Dev

使用Excel中的按钮将信息从一张工作表复制到新行的另一工作表

来自分类Dev

如何将excel范围整合到一张表中?

来自分类Dev

从 Excel 文件中所有工作表的列中复制数据并将其粘贴到一张工作表中

来自分类Dev

如何在一个MS Excel文件中将2个gridviews导出到2个单独的工作表中?

来自分类Dev

将数据框导出为 R 中单个 Excel 文件中的多个工作表

来自分类Dev

Excel VBA:如何将数据推到另一张工作表上的独占范围?

来自分类Dev

将数据导出到Excel工作表

来自分类Dev

将多个数据集导出到ssrs中的多个Excel工作表

来自分类Dev

将数据集导出到ASP.NET C#中的Excel工作表

来自分类Dev

将抓取的文档保存在 Excel 文件中的两张工作表中

来自分类Dev

将表数据导出到流星中的excel中

来自分类Dev

如何将多个Excel工作表打印到一个PDF文件中?

来自分类Dev

如何在R中的for循环中的同一Excel文件中导出单独的工作表?

来自分类Dev

R Shiny将两个数据框导出到同一Excel工作表中的两个工作表中

来自分类Dev

如何对熊猫数据框列进行分组并将不同的组保存到同一Excel文件中的多张工作表中?

来自分类Dev

如何将sql server中的大量数据导出到excel文件中

Related 相关文章

  1. 1

    如何将 PyCharm 文件中的数据导出到 Excel 工作表中?

  2. 2

    将多个 Excel 文件合并到一张 Excel 工作表中,无需复制公式和重复数据

  3. 3

    如何将几个文件的文件名导出到Excel工作表中?

  4. 4

    如何将多个数据表导出到单个Excel文件中的多个工作表

  5. 5

    Excel Vba - 如何将匹配的行从一张工作表复制并粘贴到另一张工作表中完全匹配的行下方

  6. 6

    如何仅将Excel中的一个工作表导出到单个htm文件?

  7. 7

    如何在Excel中仅对一张工作表启用宏

  8. 8

    将大量行从一张工作表复制到另一张工作表,但Excel 2010中的空白行除外

  9. 9

    VBA Excel将行从一张工作表复制到另一张工作表中具有特定值的行

  10. 10

    将 Excel 中匹配记录的行值从一张工作表复制到另一张工作表

  11. 11

    如何将一张excel文件导入到access数据库中?

  12. 12

    将列表列表以CSV格式导出到单独的文件或Excel工作表中

  13. 13

    如何使用 Pandas 将我的 python 网页抓取数据导出到现有 excel 文件中的特定工作表?

  14. 14

    使用Excel中的按钮将信息从一张工作表复制到新行的另一工作表

  15. 15

    如何将excel范围整合到一张表中?

  16. 16

    从 Excel 文件中所有工作表的列中复制数据并将其粘贴到一张工作表中

  17. 17

    如何在一个MS Excel文件中将2个gridviews导出到2个单独的工作表中?

  18. 18

    将数据框导出为 R 中单个 Excel 文件中的多个工作表

  19. 19

    Excel VBA:如何将数据推到另一张工作表上的独占范围?

  20. 20

    将数据导出到Excel工作表

  21. 21

    将多个数据集导出到ssrs中的多个Excel工作表

  22. 22

    将数据集导出到ASP.NET C#中的Excel工作表

  23. 23

    将抓取的文档保存在 Excel 文件中的两张工作表中

  24. 24

    将表数据导出到流星中的excel中

  25. 25

    如何将多个Excel工作表打印到一个PDF文件中?

  26. 26

    如何在R中的for循环中的同一Excel文件中导出单独的工作表?

  27. 27

    R Shiny将两个数据框导出到同一Excel工作表中的两个工作表中

  28. 28

    如何对熊猫数据框列进行分组并将不同的组保存到同一Excel文件中的多张工作表中?

  29. 29

    如何将sql server中的大量数据导出到excel文件中

热门标签

归档