首页 > 解决方案 > 将 Excel 转换为 CSV 并忽略 C# 中的空单元格和 DropDownList

问题描述

我有以下方法循环遍历我的 Excel 工作表作为数据表,通过字符串生成器输出将其转换为 CSV。

在我的 Excel 工作簿上,我有下拉列表,在输出 CSV 上,当 Excel 行为空时,这些下拉列表也从 XLS 转换为 CSV。

在此处输入图像描述

我试图检查字符串是否为空或不为空,但 CVS 的输出是空文件。

while (row_no < result.Tables[ind].Rows.Count)
{
    for (int i = 0; i < result.Tables[ind].Columns.Count; i++)
    {
        if (!String.IsNullOrWhiteSpace(csvData))
        {
            csvData += result.Tables[ind].Rows[row_no][i].ToString() + "|";
        }
    }

    row_no++;
    csvData += "\n";
}

问题; 我究竟做错了什么?!

我觉得我是如此接近,但它只是不行为。

预先感谢您的协助。

我的完整代码如下:

 FileUpload1.PostedFile.SaveAs(Server.MapPath("...");
 string filePath = HttpContext.Current.Server.MapPath("...");
 FileStream stream = File.Open(filePath, FileMode.Open, FileAccess.Read);
 IExcelDataReader excelReader = ExcelReaderFactory.CreateBinaryReader(stream);
 DataSet result = excelReader.AsDataSet();
 excelReader.Close();

 result.Tables[0].TableName.ToString();
 string csvData = "";
 int row_no = 0;
 int ind = 0;

 while (row_no < result.Tables[ind].Rows.Count)
 {
     for (int i = 0; i < result.Tables[ind].Columns.Count; i++)
     {
        csvData += result.Tables[ind].Rows[row_no][i].ToString() + "|";    
     }

     row_no++;
     csvData += "\n";
 }

 output = HttpContext.Current.Server.MapPath("...csv");
 newOutput = Path.GetFileName(output);
 StreamWriter csv = new StreamWriter(@output, false);
 csv.Write(csvData);
 csv.Close();
 csv.Dispose();

在此处输入图像描述

标签: c#excelcsv

解决方案


推荐阅读