首页 > 解决方案 > 尝试从 csv 文件生成 excel 时参数计数不匹配

问题描述

我正在尝试从 CSVfiles 生成一个 Excel 文件。我有不同的 CSV 文件,我想阅读它们并生成一个 EXCEL 文件

我一直在尝试使用 EPPlus 库来编写 excel。我总是有同样的问题:参数计数不匹配

所以这是我的代码:

public static IActionResult ExelWriter([HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)] HttpRequest req, ILogger log)
    {

       IEnumerable<List<string>> list = getData();

       string excelFileName2 = @"C:\Users\a\Desktop\exelreader\testF4" + DateTime.Now.ToString("yyyy-MM-dd--hh-mm-ss") + ".xlsx";
        string worksheetsName = "Sheet1";
        bool firstRowIsHeader = false;
        var format = new ExcelTextFormat();
        format.Encoding = Encoding.UTF8;
        format.Delimiter = ',';
        format.EOL = "\r"; 

        using (ExcelPackage package2 = new ExcelPackage(new FileInfo(excelFileName2)))
        {
            ExcelWorksheet worksheet = package2.Workbook.Worksheets.Add(worksheetsName);
            worksheet.Cells.LoadFromCollection(list); *this line gives me error*
            package2.Save();
        }
        return null;
    }

 public static IEnumerable<List<string>> getData()
    {
        string csvFileName = @"C:\Users\a\Desktop\exelreader\testcsv.csv";
        List<List<string>> rows = new List<List<string>>();
        string value;
        using (TextReader reader = File.OpenText(csvFileName))
        {
            var csv = new CsvReader(reader);
            csv.Configuration.HasHeaderRecord = false;
            while (csv.Read())
                {
                    List<string> row = new List<string>();
                    for (int i = 0; csv.TryGetField<string>(i, out value); i++)
                    {
                        if (csv.GetField(i) == null)
                        {
                            row.Add("");
                        }
                        else
                        {
                            row.Add(Convert.ToString(csv.GetField(i)));
                        }
                    }

                    if (row.Any())
                    {
                        rows.Add(row);
                    }
            }
        }

        IEnumerable<List<string>> a = rows.AsEnumerable();
        return a;
    }

我希望得到一个完整有效的 excel 文档。关于我为什么会出现这样的错误的任何想法,因为我不明白为什么当参数完全属于同一类型时会出现错误。

** PS:我在运行时得到错误,而不是在编译时。**

谢谢 :)

标签: c#asp.net.netexcelcsv

解决方案


推荐阅读