excel文件由第三方应用生成 . 我正在编写一个实用程序来进一步处理该Excel文件 . 当我读取包含日期值的列时,我得到的数字字符串如05/02/2016(dd / MM / yyyy)将以42405的形式出现 .
我尝试过使用.Text,.Formula,.Value,.Value2 - 所有方法都返回数值 .
我知道FromOADateTime,但我的要求是将日期值作为字符串读取,就像它在屏幕上显示的方式一样 .
谢谢 .
编辑1:当我将列转换为Excel中的文本时,通过使用“单元格格式”并选择“文本”,所有日期值都会转换为数值,即使在Excel中也是如此!这有什么线索吗?可能第三方应用程序将数据存储为数值,但Excel会将其显示为屏幕上的日期字符串 . 我想读取屏幕上显示的值 .
编辑2:
此列中的所有日期值都没有此问题 . 我的第一印象是,在将日期值写入Excel时,第三方应用程序不一致 . 但我无法控制它 .
编辑3:这是下载文件的链接:http://wikisend.com/download/316956/Prob.xls . 在此文件中,我需要从第13行开始读取B列中的所有日期值作为文本
这里是它在我的机器中的样子截图的链接:http://wikisend.com/download/443994/Screenshot1.jpg
编辑4:在NineBerry的答案的帮助下找到我的代码的罪魁祸首:在阅读Text属性之前几行,我调用了ws.Columns.ClearFormats()和ws.Rows.ClearFormats();
我需要这样做:How to get the range of occupied cells in excel sheet ...,以便正确获取工作表中的使用范围!
原来的问题解决了 . 现在的问题是如何使用ws.UsedRange而不调用ClearFormats()来正确获取已使用单元格的范围 .
我的具体要求是获得在任何单元格中使用数据的已使用ROWS的范围,直到Col H.我不需要Excel中的整个UsedRange,Col H中的UsedRange对我来说已经足够了 .
对此有何解决方案?或者我应该发布新帖子?
1 回答
使用
Text
属性 does 给出将显示给用户的字符串 .如果您在这里看不到您在Excel中看到的内容,则必须向我们提供更多详细信息 . 也许提供一个示例Excel文件,其中单元格的行为不符合预期 .
此代码DOES输出文件中第二列的内容,与Excel中显示的内容完全相同:
如果您没有看到,则应检查您实际上是否正在读取正确的文件,并且在阅读之前不要自己从代码中修改文件 .