C#读取excel单元格获得的值与屏幕上看到的值不同

时间:2018-11-09 11:37:01

标签: c# .net excel

我正在读取具有互操作性的excel文件,但获得的值与屏幕上看到的值不同。我不知道会发生什么。

我正在阅读的Excel:

当我读取单元格E5或E6时,我得到的是文本“ NUM VAGON”,但是在屏幕上看到的是“NºVAGON”,其他行和列都一样,所见和所见的值不同知道了

没有其他工作表,所以这不是问题。如果我将所有文本复制到另一个excel中,效果很好。

Value和Value2同样适用。

这是我的代码:

 xl.Application app = null;

 try
 {
     //app = new Microsoft.Office.Interop.Excel.ApplicationClass();
     app = new Microsoft.Office.Interop.Excel.Application();
     //xl.Workbook theWorkbook = app.Workbooks.Open(eFile, 0, true, 5, "", "", true, xl.XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0);
     xl.Workbook theWorkbook = app.Workbooks.Open(eFile);
     //xl.Sheets sheets = theWorkbook.Worksheets;
     //xl.Worksheet worksheet = (xl.Worksheet)sheets.get_Item(1);
     xl.Worksheet worksheet = (xl.Worksheet)theWorkbook.Sheets[1];
     xl.Range range = null;

     range = worksheet.get_Range("E6", "E6");
     //System.String titulo = (System.String)range.Cells.Value2;
     System.String titulo = (System.String)range.Cells.Text;

1 个答案:

答案 0 :(得分:0)

我认为.Text为您提供了格式化的单元格内容(由于某种原因,Interop dll将N°转换为NUM)。 您似乎已经尝试过.Value2(上面的注释行)。那不是给你想要的吗? Value属性也存在,但与Value2几乎相同。

这篇文章解释了Text,Value和Value2之间的区别: https://stackoverflow.com/a/17363466/6996150

更新: 您如何/在哪里看到NUM个文本?何时调试?还是将其输出到某个地方?也许文本是正确的(N°),但是由调试器或用于读取输出的工具格式化了吗?