C# 关于 DataTable 的一个问题,求助大家~

2015-11-15 23:35:18 +08:00
 hiths

var cell = new {text = cellText, color = textColor, format = textFormat};

我在 DataTable 的每个单元格里存上 cell 这样的对象,遍历 DataTable 的时候,为啥不能
dr[coloumIndex].text 这样挨个读出 text 、 color 和 format 呢?是不是因为不管啥存到 DataTable 里,都被变成了 System.String 啊?

其实就是我想写个东西读 excel 表格里的文字、文字格式和文字颜色,发现 C# 很方便就看了一点 C#就开始写了。如果只读文本的话,直接把读到的 text 以 string 形式存到 DataTable 再遍历就很方便,但是再包括颜色和文本格式就很麻烦。我能想到的办法就是写 3 个方法,一个读文本,一个读颜色,一个读格式,那这样就需要 3 个 DataTable,感觉有点不科学,求助大家一下,谢谢谢谢~

2527 次点击
所在节点    编程
4 条回复
bin456789
2015-11-16 00:03:15 +08:00
dr[coloumIndex]是整行,你忘了指定哪个列
将单元格转为 dynamic 就可用了,例如 ((dynamic)dr[0]["a"]).color
还要注意添加列的时候要标明 object 类型, dt.Columns.Add("a",typeof(object));
hiths
2015-11-16 09:59:43 +08:00
@bin456789 先谢谢您了~我去试试看~
hiths
2015-11-16 14:24:07 +08:00
@bin456789 报告一下,搞定了~另外我没忘记指定列,遍历的时候我是这样 foreach (DataRow dr in dt.Rows) 写的,哈哈~C#真是啰嗦啊。各种类型。。
bin456789
2015-11-16 20:12:10 +08:00
@hiths 嗯嗯,是我看错了。。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/236414

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX