c# - 我可以通过 ClosedXML 将 EXCEL 工作表保存为 CSV 格式吗?

标签 c# .net excel closedxml

是否可以通过 ClosedXML 将工作簿的工作表保存为 CSV?

例如:

var workbook = new XLWorkbook(fileName);
IXLWorksheet worksheet;
workbook.Worksheets.TryGetWorksheet(sheetName, out worksheet);

如何将其保存为 CSV?

最佳答案

如果单元格有分隔符,其他答案将无法生成有效的 CSV,所以这里有一个更好的方法

var lastCellAddress = worksheet.RangeUsed().LastCell().Address;
File.WriteAllLines(csvFileName, worksheet.Rows(1, lastCellAddress.RowNumber)
    .Select(r => string.Join(",", r.Cells(1, lastCellAddress.ColumnNumber)
            .Select(cell =>
        {
            var cellValue = cell.GetValue<string>();
            return cellValue.Contains(",") ? $"\"{cellValue}\"" : cellValue;
        }))));

这是基于@Extragorey的回答

关于c# - 我可以通过 ClosedXML 将 EXCEL 工作表保存为 CSV 格式吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27102904/

相关文章:

C# 数组初始化 - 具有非默认值

c# - 使用分组在列表上创建字典

excel - 如何过滤日期列以仅显示一个月的最后一周

excel - VBA大于函数实际上显示小于答案

c# GMT 时间等同于 UTC 时间?

c# - 如何检查变量是否在 0 到 100 之间?

c# - 如何更改网格中所有文本框的字体大小,windows app uwp

c# - 过滤 ObservableCollection?

.net - 如何禁用 FlipView 上的箭头?

c#:以编程方式在工作表范围内创建 "named range"