这是我正在使用的方法:
http://www.c-sharpcorner.com/uploadfile/yuanwang200409/how-to-convert-xls-file-into-csv-file-in-C-Sharp/
它适用于所有其他文件,但对于这个文件,即使它有六列,它也只会得到一列。该文件是 xlsx (Excell 2007)。但我不认为这是问题所在。
当我手动转换文件时,它工作得很好。
这应该很容易调试。问题的症结在于这段代码的某处:
for (int x = 0; x < dt.Rows.Count; x++)
{
string rowString = "";
for (int y = 0; y < dt.Columns.Count; y++)
{
rowString += "\"" + dt.Rows[x][y].ToString() + "\",";
}
wrtr.WriteLine(rowString);
}
我会一步一步找出rowString
每一次传递的价值。呼叫是否dt.Columns.Count
返回值为 1?在调试器窗口中打开dt
并在其中查看它。它有多个列吗?等等等等。您应该能够区分这些循环在做什么并找到问题所在。
让我们知道你发现了什么。
问题是 Excel 文件的第一行没有标题。我不知道为什么,但是一旦我为标题添加了额外的行 - 它就被修复了。