gpt4 book ai didi

c# - 将 XLSX 文件转换为 CSV 文件

转载 作者:太空狗 更新时间:2023-10-29 22:30:00 25 4
gpt4 key购买 nike

我需要将 XLSX 文件转换为另一个 CSV 文件。我已经对如何执行此过程进行了大量研究,但没有找到适合我的方法。我只找到了这个 Github Gist Convert an Epplus ExcelPackage to a CSV file

返回一个二进制数组。但显然它不再起作用了。

我正在尝试使用 LoadFromCollection 加载数组

FileInfo novoArquivoCSV = new FileInfo(fbd.SelectedPath);
var fileInfoCSV = new FileInfo(novoArquivo + "\\" + nameFile.ToString() + ".csv");

using (var csv = new ExcelPackage(fileInfoCSV))
{
csv.Workbook.Worksheets.Add(nameFile.ToString());
var worksheetCSV = csv.Workbook.Worksheets[1];

worksheetCSV.Cells.LoadFromCollection(xlsx.ConvertToCsv());
}

最佳答案

您链接到的代码读取 XLSX 工作表并通过内存流将 CSV 数据作为字节缓冲区返回。

如果删除内存流并将路径传递到 ConvertToCsv 中的目标文件,则可以改为直接写入文件:

public static void ConvertToCsv(this ExcelPackage package, string targetFile)
{
var worksheet = package.Workbook.Worksheets[1];

var maxColumnNumber = worksheet.Dimension.End.Column;
var currentRow = new List<string>(maxColumnNumber);
var totalRowCount = worksheet.Dimension.End.Row;
var currentRowNum = 1;

//No need for a memory buffer, writing directly to a file
//var memory = new MemoryStream();

using (var writer = new StreamWriter(targetFile,false, Encoding.UTF8))
{
//the rest of the code remains the same
}

// No buffer returned
//return memory.ToArray();
}

Encoding.UTF8确保文件将被编写为带有字节顺序标记的 UTF8,允许所有程序理解这是一个 UTF8 文件而不是 ASCII。否则,程序可以将文件读取为 ASCII 并在遇到第一个非 ASCII 字符时阻塞。

关于c# - 将 XLSX 文件转换为 CSV 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42926710/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com