- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我一直认为它确实如此,尽管我不知道我从哪里得到的想法......例如,我一直认为将电子表格视为二维数组很容易,但是对 SO 的一些搜索表明每个人都在使用第三个-派对图书馆?或者,是否所有需要不需要安装 Office 的解决方案的人...如果我没有这个限制,它会变得更容易吗?
正如我所说,我查看了 SO,但没有看到这个特定问题的答案。然而,也许我的搜索技巧很糟糕......
编辑:这个想法是我想在 C# 应用程序中打开一个 XLS/CSV 文档。我不想要来自单元格的任何复杂数据,只需能够从每个单元格读取文本值。理想情况下,使用 Cell.getText() 方法将电子表格视为二维单元格数组的包装器就是我需要的全部复杂性。
最佳答案
Yes, .NET has built-in Office functionality .但是你会在尝试使用它时打败自己。它也隐藏得很好,只与 Office 2007 兼容。和更高版本(除非您下载 Office 2003/XP 的兼容性插件)。
更好用 some of the APIs designed to interoperate with Office而不是试图一个人去。链接适用于 Office Open XML可用于创建 .*x Office 文件(.docx、.xslx 等)的 SDK。
如果您想知道 System.IO.Packaging 与 Office 的关系,文档路径从这里开始:
http://msdn.microsoft.com/en-us/library/dd371623(VS.85).aspx
简写版本是新的办公格式是Open XML documents .什么是 Open XML 文档?它们是包含在 ZIP 文件中的资源包(例如图像)和 XML 文件。您可以使用任何新的 Office 文件,将扩展名更改为 .zip,然后打开它们进行查看。
这是什么意思?这意味着您可以解压缩这些文件,将这些部分加载为 XDocuments 并前往镇上。当然,您必须将文件解压缩到一个临时位置,对多个 XML 文件进行排序以找到您想要的文件,在更改文件时管理文件之间的所有连接,等等。
或者,您可以使用 System.IO.Packaging 命名空间及其类型来打开这些文件、访问包中的不同组件(甚至远程)、更改它们并将更改刷新回磁盘。
现在,虽然您可以使用命名空间轻松完成此操作,但您无法对 Open XML 文件中的不同包进行类型安全访问。您必须使用魔术弦才能取出零件。这也意味着您几乎必须了解 Open XML 模式,这很糟糕。
这就是 MS 提供 Open XML SDK 的原因,您可以将其与 System.IO.Packaging 结合使用来打开、更改和保存 Open XML 办公文档。
添加我的 first link和我的 second link你会得到原始问题的答案。
要回答 OP 的澄清,这不会那么容易。 xls 文件很复杂;细胞不仅仅是一个二维数组。但是有免费的 API 可以帮助您打开和访问其中的数据。
如果您希望打开与 Office 2007 兼容的文件,我强烈建议您查看 Office Open XML SDK。如果您想打开旧版本(Office 2003、XP),我建议您使用 codeplex.com 上的众多 Excel 项目之一(我想我已经使用了 Excel Data Reader )。其中有很多,旨在使访问 Excel 电子表格中的数据变得非常容易。但不是很容易 sheet[x][y] 。
关于.net - 那么,.NET 没有内置的 Office 功能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1405201/
我试图在 (C) Python 源代码中找到内置 in 运算符的实现。我在内置函数源代码中搜索过,bltinmodule.c ,但找不到此运算符的实现。我在哪里可以找到这个实现? 我的目标是通过扩展此
我们正在开发一个 shell(学校项目)。我们不理解一种行为。为什么内置函数在重定向时不起作用? 喜欢 cd - | command 不改变目录。 或 export NAME=VALUE | comm
有人问有关如何对列表进行排序的问题。从基本List.Sort()到List.OrderBy()有几种方法。最可笑的是自己动手的SelectionSort。我迅速将其否决,但这使我思考。应用于列表的
我正在尝试使用 C 中内置的 qsort 函数对结构进行排序 typedef struct abc{ long long int fir; long long int sec; }abc; 在
我觉得有一些内置的东西。如果对象为空,我想要默认值(或者特别是 0,我只使用十进制/整数)。是否有编写此函数的内置方法? static int GetDecimalFromObject(object
Java 是否有用于生成和解析文档的内置 XML 库?如果不是,我应该使用哪个第三方? 最佳答案 Sun Java 运行时附带 Xerces 和 Xalan 实现,它们提供解析 XML(通过 DOM
我对 python 的“all”和生成器有以下问题: G = (a for a in [0,1]) all(list(G)) # returns False - as I expected 但是:
我有一些使用 gcc 内部函数的代码。我想包含代码以防缺少内在函数。我该怎么做? #ifdef __builtin_ctzll 不起作用。 最佳答案 使用最新版本的 clang,现在可以使用 __ha
人们常说应该在本地重新声明(某些)Lua 函数,因为这样可以减少开销。但这背后的确切规则/原则是什么?我怎么知道哪些功能应该完成,哪些是多余的?还是应该为每个功能完成,甚至是您自己的功能? 不幸的是,
我想实现以下功能: TestClass values 接受任意数量的 NewClass 对象 只有 NewClass 对象没有完全相同的属性值被添加到TestClass.values 我想出了这个:
我正在尝试编写一个存储过程(使用 SQL Server Management Studio 2008 R2)以从表中检索最大测量值。这似乎是一件容易的事,所以我写了一个简短的存储过程来获取 MAX。但
我刚写了我的第一个Electron应用程序。现在,我正在尝试通过electron-packager构建它。我的package.json看起来像这样: { "name": "pixelcast",
我正在寻找在 WPF 应用程序中使用的“安全”字体系列列表 - 应该安装在所有能够运行 WPF 的客户端机器上的字体系列。 Silverlight 有一个明确定义的列表( listed on MSDN
好吧,(在写了几次之后)发现System.Windows.Controls命名空间中已经有一个BooleanToVisibilityConverter,这真是一个惊喜。 可能还有更多这样隐藏的节省时间
在我的 gradle 构建文件中,我有以下插件 block plugins { `java-library` jacoco checkstyle } 这些都没有指定版本,但一切
关闭。这个问题需要多问focused 。目前不接受答案。 想要改进此问题吗?更新问题,使其仅关注一个问题 editing this post . 已关闭 3 年前。 Improve this ques
10 implementations String#reverse 已根据每个浏览器进行分析。 自 2011 年以来已对这些实现进行了解释。 当 ES6 出现时,有很多代码变得更加优雅和性能。 关于
在 Julia 包 BenchmarkTools 中,有一些像 @btime、@belapse 这样的宏对我来说似乎是多余的,因为 Julia 内置了@time、@elapse 宏。在我看来,这些宏服
我正在尝试编写一个简单的 LLVM 通行证,其目标如下: 查找所有 call指示。 在被调用函数中插入我编写的外部函数。 例如,考虑我有以下示例程序: #include #include int
我理解 'a) -> (rhs:'a -> 'a) -> 'a 在我感兴趣的情况下,我经常发现自己想要类似 (lhs:'a -> 'b) -> (rhs:'c -> 'b) -> 'b 的东西在侧面
我是一名优秀的程序员,十分优秀!