我正在读取具有互操作性的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;
答案 0 :(得分:0)
我认为.Text为您提供了格式化的单元格内容(由于某种原因,Interop dll将N°转换为NUM)。 您似乎已经尝试过.Value2(上面的注释行)。那不是给你想要的吗? Value属性也存在,但与Value2几乎相同。
这篇文章解释了Text,Value和Value2之间的区别: https://stackoverflow.com/a/17363466/6996150
更新: 您如何/在哪里看到NUM个文本?何时调试?还是将其输出到某个地方?也许文本是正确的(N°),但是由调试器或用于读取输出的工具格式化了吗?