C#/ Excel:将Excel范围转换为具有正确数据类型的数组
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了C#/ Excel:将Excel范围转换为具有正确数据类型的数组,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1512字,纯文字阅读大概需要3分钟。
内容图文
![C#/ Excel:将Excel范围转换为具有正确数据类型的数组](/upload/InfoBanner/zyjiaocheng/792/3be214f443784bd5b5a49d1eb95f08eb.jpg)
我用Excel Application(Microsoft.Office.Interop.Excel)打开了* .htm文件.它解析得很好!所以我可以使用它.为了提高速度,我正在尝试从Excel Range获取数据并插入System.Array并使用它:
Excel.Range range = ExcelWorksheet.get_Range("A1", "H1500"); // get all values
System.Array dataArray = (System.Array)(range.Cells.Value2); // insert into array
问题在于数据类型.如果Excel单元格具有时间或日期格式,则range.Cells.Value2会:
12.06.2012至41072(Excel单元格类型 – 日期)
14:48至0,616666666666667(Excel单元格类型 – 时间)
如果我从Excel Cell获得单值,我得到正确的值(使用Cells.Text.ToString()):
ExcelWorksheet.get_Range("A1", "A1").Cells.Text.ToString()
任务:我需要从Excel Sheet中获取值,就像文本一样,而不是另一种类型.并且不希望Excel认为而不是我:)
解决方法:
为什么不直接将返回值转换为您需要的格式? DateTime的FromOADate方法就是为此而设计的(见http://msdn.microsoft.com/en-us/library/1ad4d8d6(v=vs.80).aspx).例如,返回的时间值代表我们每天24小时的一小部分.因此以下示例将输出“14:48”:
double oleDateTime = 0.616666666666667;
DateTime dt = DateTime.FromOADate(oleDateTime);
string time = dt.ToString("H:mm");
Console.WriteLine(time);
就日期值而言,您可以使用相同的方法.唯一的区别是Excel(double)的值大于零,因为它包含一个日期部分(不仅仅是时间).以下将产生“12.06.2012”:
dt = DateTime.FromOADate(41072);
string date = dt.ToString("dd.MM.yyyy");
Console.WriteLine(date);
为了进一步说明,在您处理日期和时间(返回的Excel值大于零)的情况下,以下将产生“6/12/2012 2:48:00 PM”:
dt = DateTime.FromOADate(41072.616666666666667);
Console.WriteLine(dt.ToString());
内容总结
以上是互联网集市为您收集整理的C#/ Excel:将Excel范围转换为具有正确数据类型的数组全部内容,希望文章能够帮你解决C#/ Excel:将Excel范围转换为具有正确数据类型的数组所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。