【问题标题】:How to split a excel sheet based on batchsize using C#?如何使用 C# 根据批量大小拆分 Excel 工作表?
【发布时间】:2020-06-08 10:47:38
【问题描述】:

下面的代码适用于为 .txt、.csv、.xml 拆分文件,例如,如果名为 Data 的文件包含 40 条记录,它将被拆分为 Data1 和 Data2 的 20 条记录。如何保留第一行(标题) 在每个拆分的文件中?

int i = 1;
int batchsize = 20;
string filepath = "";
string file = "";
string[]readfile=File.ReadAllLines(file);
Var chunk = readFile.Take(batchsize);
Var rem = readFile.Skip(batchsize);
While(chunk.Take(1).Count() > 0) 
{
    stringfilename="Data_" +i.String()+ ".xlsx";
    using StreamWriter sw=new StreamWriter (filename))
   {
        foreach(string line in chunk) 
       {
            sw WriteLine(line);
        }
    }
    chunk = rem.Take(batchsize);
    rem = rem.Skip(batchsize)
    i++;
} 

【问题讨论】:

  • 欢迎来到 StackOverflow。我认为问题在于您的 Excel 文件不是文本文件,而是 二进制文件 (因此 File.ReadAllLines(file) 不能用于读取它)。请看一下这个链接:stackoverflow.com/q/6865890/12833205。我认为这可能会有所帮助。它展示了如何逐块读取任意文件。

标签: c#


【解决方案1】:

我认为直接从 excel 获取数据会很复杂,因为你有多个工作表和列和行的社会哲学,所以你可以使用 Nuget 的“EPPlus”版本“4.5.3.3”(因为它是免费的版本)

您的所有练习都将变得如此容易。 希望回答对你有帮助

参考:Reading excel file using EPPlus

【讨论】:

    猜你喜欢
    • 2017-09-16
    • 1970-01-01
    • 2020-11-04
    • 2015-04-20
    • 2017-07-23
    • 2022-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多