将Excel转换为CSV并忽略C#中的空单元格和DropDownList

时间:2019-04-16 11:55:07

标签: c# excel csv

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

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

enter image description here

我试图检查字符串是否为空或不为空,但是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();

enter image description here

0 个答案:

没有答案