Tag: spreadsheetml

电子表格ML文本颜色(颜色)渲染

我正在编写一个工具来生成一些Spreadsheet ML(XML)来为我的用户创build一个Excel电子表格。 我定义了一个风格如下: <样式ss:ID =“GreenText”> <Font ss:FontName =“Arial”ss:Size =“9”ss:Color =“#8CBE50”/> </样式> 这在一定程度上是有效的,但是当我在Excel中打开它时,为文本呈现的颜色不是我指定的颜色 – 这是更明亮的版本。 我可以对单元格边框使用相同的颜色参考,并且颜色呈现正确。 任何人都可以摆脱为什么文字颜色不正确呈现的任何灯光? 谢谢!

如何在Excel中使用开放XML在c#中插入超链接

如何在Excel中使用C#插入超链接? 我试过这个,但是不起作用 WorksheetPart workSheetPartss = new WorksheetPart(); workSheetPartss.AddHyperlinkRelationship(new Uri("http://www.google.com", UriKind.Absolute), true); Excel.SetCellValue(spreadsheet, worksheet, k, i + 1, workSheetPartss.Uri.ToString(), true);

Excel 2007中的数值与基础xml文件不一致的可视化

我正在尝试从Excel外部读取Excel 2007文件(xlsx),并发现我无法解释的不一致。 如果你input19.99的值到一个单元格中,然后看看底层的Xml文档,它实际上被存储为19.989999999999998。 这不是唯一的价值,但这是一个合理的例子。 没有格式应用在工作表中。 在我的例子中,我只是打开一个新的工作簿,在A1键入19.99,并保存该文件。 我试图在开放式办公室和Google文档中打开这个简单的例子,并且在文档加载时显示19.99。 我的问题是,如何确定何时将此值从19.989999999999998转换为19.99以供其他系统使用?

解码由Excel生成的剪贴板的XML电子表格内容

我想在我的程序中做一个非常简单的事情: 当用户在Excel(2007 – 2016)中做出select副本时,我希望能够读取剪贴板内容,然后提取所有值。 目前,Excel会在剪贴板中放入不同的格式,如Biff5,Biff8,CSV,纯文本等。 一个简单的解决scheme可能是使用CSV格式,但这不够精确,因为如果我在数字上滚动,我不知道它是否是string或Excel文件中的数字。 date也是以原始格式发送的,理解它会是一件痛苦的事情。 所以我看到的解决scheme是parsingExcel发送的“XML Spreadsheet”,看起来像这样: <?xml version="1.0"?> <?mso-application progid="Excel.Sheet"?> <Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" xmlns:html="http://www.w3.org/TR/REC-html40"> <Styles> <Style ss:ID="Default" ss:Name="Normal"> <Alignment ss:Vertical="Bottom"/> <Borders/> <Font ss:FontName="Calibri" x:Family="Swiss" ss:Size="11" ss:Color="#000000"/> <Interior/> <NumberFormat/> <Protection/> </Style> </Styles> <Worksheet ss:Name="Feuil1"> <Table ss:ExpandedColumnCount="1" ss:ExpandedRowCount="3" ss:DefaultColumnWidth="60" ss:DefaultRowHeight="15"> <Row> <Cell><Data ss:Type="Number">8</Data></Cell> </Row> <Row> <Cell><Data ss:Type="Number">9</Data></Cell> </Row> <Row> <Cell ss:Formula="=SUM(R[-2]C:R[-1]C)"><Data ss:Type="Number">17</Data></Cell> […]

Excel 2003电子表格XML中的多个窗格

我想生成一个有三个水平窗格的Excel电子表格。 报告标题 报告标题 报告值 因此,标题将滚动到文档的顶部,然后“冻结”,而值在标题下方滚动。 我可以使用下列工作表选项设置两个窗格: <FreezePanes/> <SplitHorizontal>11</SplitHorizontal> <TopRowBottomPane>11</TopRowBottomPane> <ActivePane>2</ActivePane> <Panes> <Pane> <Number>3</Number> </Pane> <Pane> <Number>2</Number> </Pane> </Panes> 我不是Excel的经验,所以我不知道这是可能的。

SpreadsheetML – 错误和validation

我在C#项目中为MS Excel生成SpreadsheetML文件。 自昨天发生了一些变化以来,这一切都奏效 现在我有问题打开它。 它出现了错误: XML PARSE ERROR:属性值为空或缺less在此元素堆栈或其下面发生错误: 我已经把这个问题缩小到了一个表格,但是它有7000多行,大约有20列。 当我输出单行时,它打开罚款,所以显然不是每一行都有问题。 现在我正在寻找如何find问题的build议,因为Excel不提供行号(我讨厌!)。 任何人都知道一个工具或一个很好的方法来validationSpreadsheetML文件?

如何为Excel 2010中的所有三个date兼容性设置生成SpreasheetML示例?

根据ECMA-376第二版,第1部分 – 基础和标记语言参考 SpreadsheetML支持具有三种可能的兼容性设置和各种范围的date序列值。 http://www.documentinteropinitiative.com/implnotes/ISO-IEC29500-2008/001.018.017.004.001.000.000.aspx 在1900年的date基础系统中,下限是1999年1月1日,它的序列号是-4346018。 这个数据库系统的基准date是1899年12月30日,它的序列号为0。 在1900向后兼容date库系统中,下限是1900年1月1日,它的序列值为1.此date系统的基准date为1899年12月31日,序列值为0。 在1904年的向后兼容date库系统中,下限是1904年1月1日,它具有序列值0.该date基础系统的基准date是1904年1月1日,其序列值为0。 但是,当使用Microsoft Office Excel 2010生成date序列为1的* .xlsx文件时,* .xlsx文件没有设置任何dateCompatibility属性(表示“1900date基本系统”),而是与date序列号1是1900年1月1日(表示“1900向后兼容性”)。 workbookPr元素是这个,未经编辑的,没有dateCompatibility属性。 <x:workbookPr defaultThemeVersion="124226" xmlns:x="http://schemas.openxmlformats.org/spreadsheetml/2006/main" /> 下面是一行数据,显示date序列1和格式化为date的文本结果: <x:row r="3" spans="1:2"> <x:cr="A3"> <x:v>1</x:v> </x:c> <x:cr="B3" t="str"> <x:ft="shared" si="0" /> <x:v>1900-01-01 00:00:00.0</x:v> </x:c> </x:row> 该公式只是date格式,在工作表中前面引用: <x:ft="shared" ref="B1:B42" si="0">TEXT(A1, "yyyy-mm-dd HH:mm:ss.0")</x:f> 此公式给出与将date格式图案应用于date序列号相同的结果,在下面的屏幕截图中显示。 同样格式化否定date会导致错误,另一个指标是Excel实际上使用向后兼容的date系统,尽pipedateCompatibility上没有dateCompatibility属性。 工作簿的选项仅显示1904年date系统的未选中checkbox。 我没有看到1900年的date为1900年向后兼容的选项。 我读的规格错了吗? 还是SpreadsheetML? 或者是其他东西?

将Excel的SUM()添加到XLST结果页面?

如何将SUM()函数应用于每个hours节点? 我将保存这个transfomred XML为Excel,我希望它有embeddedSUM()函数。 经过研究,似乎有这么多的方法来做,但没有真正适用于我的问题。 XSL: <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> <html> <body> <img src="../images/company_logo.png"></img> <p>Company: <xsl:value-of select="companies/company[1]/companyName"/></p> <p>Date: <xsl:value-of select="companies/company[1]/startDate"/> to <xsl:value-of select="companies/row[last()]/endDate"/></p> <table> <xsl:for-each select="company/row"> <tr> <td>ID:</td> <td><xsl:value-of select="serviceID"/></td> <td>Hours:</td> <td><xsl:value-of select="hours"/></td> </tr> </xsl:for-each> </table> </body> </html> </xsl:template> </xsl:stylesheet> XML <company> <companyName>Cool Beans</companyName> <serviceID>1</serviceID> <startDate>01-01-2014 00:00:00</startDate> <endDate>01-02-2014 00:00:00</endDate> <hours>2</hours> </company>

使用SSIS来填充使用OOXML生成的Excel工作簿

我们正在尝试使用OOXML生成MS Excel工作簿,并使用SSIS填充数据。 我们能够生成工作簿和工作表,也能够在标题单元格中创build列和插入数据。 我们也可以使用SSIS来填充数据。 但Sheet( DocumentFormat.OpenXml.Spreadsheet.Sheet )和所有的单元格( DocumentFormat.OpenXml.Spreadsheet.Cell )都变成了OpenXmlUnknownElement 。 所以我们不能使用下面的代码来读取表格/单元格: Sheet sheet = workbookPart.Workbook.Descendants<Sheet>().Where(s => s.Name == "Sheet1").SingleOrDefault<Sheet>(); 如果我们先用MS Excel打开并保存,我们可以读取同一个文件。 有谁知道如何解决这个问题?

现有的API从SpreadsheetML文件中读取date?

Office Open XML SDK中是否有现有的API或第三方从SpreadsheetML / .xlsx文件中正确读取date? 由于存在如此多的variables会影响检测值是date(numFmtId +自定义数字格式),然后将date序列转换为date时间值(标准,向后兼容和1904-超向后兼容的工作簿),所以似乎符合逻辑,这是SDK将提供或至less有人会有一个现有的代码片段来处理。 我正在使用C#,但任何语言的解决scheme将罚款。