2017-05-06 153 views
0

对于Excel正在执行的“自动数据转换”,我有一个非常具体的问题。首先,我将尝试解释我在做什么以及Excel如何取笑我)C#将日期转换为Excel中单元格中的文本(互操作)

我的程序正在为来自温度传感器的报告创建图表。在报告中,第一列是读数日期,第二列是该日期的传感器读数。问题是如果第一列是DateTime格式,Excel会自动选择“XAxis系列”:

Here是Excel如何处理图表“气味”日期格式的示例。 ..

Here是图表看起来如果第一列是文本格式。

我尝试了一些变体来转换第一列中的值,但一切都太慢或弄乱了值。 到目前为止,“最快”的方式,我发现是:

foreach(Range cell in firstCol.Cells) 
     { 
      if (cell.Value is DateTime && !(cell.Value).ToString().Contains("\'")) 
      { 
       cell.Value = "\'" + cell.Value; 
      } 
     } 

但是这不够快。想象一下100张(每个传感器1张)和每张2500到4000行之间的纸张。

我试过的东西:

usedRange.NumberFormat = "@"; 

,因为它是在几个互联网上的地方建议,但不为日期格式工作。它转换成这样: 01/12/2016 00:30这样:42705.02083。

所以我的问题是,如果有人可以建议更好或更快的方式来转换日期或使Excel作为文本读取日期时间而不会搞乱任何东西。

回答

0

我敢肯定有通过固定在X轴本身就是一个更好的办法,但如果所有的寻找,就是以文本格式的日期,快速修复会是这样的:

=TEXT(DATE(2016,1,12)+TIME(0,30,0),"MM/dd/yyyy hh:mm") 
+0

其实我很可能已经在整个互联网上搜索了如何以特定的方式修复x轴,但是我没有找到任何东西。我正在谈论的是一个选项,如果它存在的话,可以用一条线修复我的整个问题。 https://drive.google.com/open?id=0Byub5fWTQ5hPNGpUckhtZkVKYjQ这就是我正在谈论的选项。如果任何人有任何想法如何在C#代码中使用该选项,请告诉我。 –

相关问题