#
private void FormatExcel(MSExcel._Application XlsA, int Row, int Col)
{
int i = Row, j = 0; while (XlsA.Cells[i + j, 7].ToString() != "")
{
MSExcel.Range Range = XlsA.get_Range(XlsA.Cells[i + j, 7], XlsA.Cells[i + j, Col]);
Range.Select();
Range.NumberFormat = "@";
j += 1;
}
}
当XlsA.Cells[i + j, 7].ToString()为""值时应该停止循环的,为什么没有停止呢?
private void FormatExcel(MSExcel._Application XlsA, int Row, int Col)
{
int i = Row, j = 0; while (XlsA.Cells[i + j, 7].ToString() != "")
{
MSExcel.Range Range = XlsA.get_Range(XlsA.Cells[i + j, 7], XlsA.Cells[i + j, Col]);
Range.Select();
Range.NumberFormat = "@";
j += 1;
}
}
当XlsA.Cells[i + j, 7].ToString()为""值时应该停止循环的,为什么没有停止呢?
用这个判断会比较好
以前遇过是""却无法判断的原因是编码....
UTF8的""跟ASCII的""是不同的
应该要比较字符串的长度吧
建議用string.IsNullOrEmpty方法
這樣比直接 !=""要好很多。
while (!string.IsNullOrEmpty(XlsA.Cells[i+j,7].ToString().Trim()))
{
MSExcel.Range Range = XlsA.get_Range(XlsA.Cells[i + j, 7], XlsA.Cells[i + j, Col]);
Range.Select();
Range.NumberFormat = "@";
j++;
}改成这样了,问题依旧
1.使用string.IsNullOrEmpty()
2.你说的循环没有停止,是等了多久没有停止?打印出i+j看看到底走到哪一行了
3.打印出XlsA.Cells[i+j,7].ToString()看看每次得到的到底是什么东西
XlsA.Cells[i + j, 7]).Value2.ToString() != "")
{
MSExcel.Range Range = XlsA.get_Range(XlsA.Cells[i + j, 7], XlsA.Cells[i + j, Col]);
Range.Select();
Range.NumberFormat = "@";
j++;
}
private void FormatExcel(MSExcel._Application XlsA, int Row, int Col)
{
int i = Row, j = 0; while (XlsA.Cells[i + j, 7] != null && XlsA.Cells[i + j, 7].ToString().Trim().Length >0)
……