标签: spreadsheetml

SpreadsheetML中的主题混淆

我整天都在打这个.在我的styles.xml文件中,我有这样的颜色信息:

<fgColor theme ="0"tint =" - 0.249977111117893"/>

ECMA 376将主题颜色参考定义为:

索引到<clrScheme>集合,引用在Theme部分中表示的特定<sysClr>或<srgbClr>值.

好的,这听起来很容易.以下是我的clrScheme xml的摘录:

<a:clrScheme name ="Office">
<a:
dk1 > <a:sysClr val ="windowText"lastClr ="000000"/>
</ a:dk1>
<a:lt1>
<a:sysClr val ="window "lastClr ="FFFFFF"/>
</ a:lt1>

指数零是黑色,他们想要变暗吗?我可以告诉你,在应用色调后,颜色应为#F2F2F2.

我的困惑是主题="0"究竟意味着什么?它不可能意味着变暗#000000.检查MSDN只会让我更加困惑.来自http://msdn.microsoft.com/en-us/library/dd560821.aspx

请注意,主题颜色整数从调色板中从左到右开始从零开始计数.主题颜色3是深色2文本/背景颜色.

实际上,如果你从0开始计数,第三个条目是Light 2. Dark 2是第二个.这里的任何人都可以为我阐明这个问题吗?什么主题="0"真的意味着什么?

这是我一直在使用的VB6代码来应用色调.您可以将其粘贴到vba编辑器中并运行test子.

Public Type tRGB
    R As Byte
    G As Byte
    B As Byte
End Type

Public Type tHSL
    H As Double
    S As Double
    L As Double
End Type

Sub TestRgbTint()
    Dim c As tRGB
    RGB_Hex2Type "ffffff", c
    RGB_ApplyTint c, …
Run Code Online (Sandbox Code Playgroud)

vb6 themes openxml spreadsheetml

7
推荐指数
1
解决办法
917
查看次数

您如何使用OpenXML API从Excel电子表格中读取表格?

我已经在网络上阅读了很多有关如何使用OpenXML API获取单元格数据的内容。但是实际上并没有太多特别简单的地方。多数似乎与写SpreadsheetML有关,而不是阅读...但是即使那样也无济于事。我有一个包含表格的电子表格。我知道表的名称是什么,我可以找出它所在的表以及表中的列。但是我不知道如何获取包含表中数据的行集合。

我已经准备好加载文档并获得工作簿的句柄:

SpreadsheetDocument document = SpreadsheetDocument.Open("file.xlsx", false);
WorkbookPart workbook = document.WorkbookPart;
Run Code Online (Sandbox Code Playgroud)

我已经找到表/表了:

Table table = null;
foreach (Sheet sheet in workbook.Workbook.GetFirstChild<Sheets>())
{
    WorksheetPart worksheetPart = (WorksheetPart)document.WorkbookPart.GetPartById(sheet.Id);
    foreach (TableDefinitionPart tableDefinitionPart in worksheetPart.TableDefinitionParts)
    {
        if (tableDefinitionPart.Table.DisplayName == this._tableName)
        {
            table = tableDefinitionPart.Table;
            break;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我可以通过遍历table.TableColumns遍历表中的列。

api excel openxml spreadsheetml

5
推荐指数
1
解决办法
5273
查看次数

电子表格自动换行样式

我使用xslt生成电子表格,并希望使用包含换行文本的单元格(或者更好的是:其中包含换行符的文本)。

因此,我的xslt为sheetdata生成了以下XML:

<sheetData>
  <row r="1">
    <c r="A1" t="inlineStr">
      <is>
        <t>
          a simple string
          line break jeeeehaaa
        </t>
      </is>
    </c>
  </row>
</sheetData>
Run Code Online (Sandbox Code Playgroud)

完成工作簿的构建后,我在Excel中打开它。而且没有换行符,只有A1中的一个简单的单行字符串。

有人对此有解决方案吗?不必在xml或xslt中(但会很好)。我也可以在C#中做一些事情

xml xslt excel spreadsheetml

5
推荐指数
1
解决办法
2607
查看次数

OpenXML Spreadsheet-在写入单元格值时保留值之前或之后的空间

我正在使用OPENXML SDK 2.0来传输电子表格文件.源数据来自数据表,并使用openxml将其写入Spreadsheet.如果数据表的列数据中有一个具有"Treshold%"(此文本上面有选项卡空间)并且同样写入excel但是在excel单元格中将其写入"Treshold%"并删除标签空间.

我使用的代码如下.使用workSheetWriter.PasteTextworkSheetWriter.PasteValue方法.

WorksheetWriter workSheetWriter = new WorksheetWriter(spreadSheet, workSheet);

int intValue = 0;
if (strValue.Contains("$"))
{
    strValue = strValue.Replace("$", "");
    strValue = strValue.Replace(",", "");

    workSheetWriter.PasteValue(cellLocation, strValue, CellValues.Number);
}
else if (int.TryParse(strValue, out intValue))
{
    workSheetWriter.PasteValue(cellLocation, strValue, CellValues.Number);
}
else if (string.IsNullOrEmpty(strValue))
{
    workSheetWriter.PasteText(cellLocation, strValue);
}
else
{
    workSheetWriter.PasteText(cellLocation, strValue);
}
Run Code Online (Sandbox Code Playgroud)

请帮忙.如何将开头的标签空间(Treshold%)中的值写入excel单元格中的格式相同?

c# openxml spreadsheetml openxml-sdk

5
推荐指数
1
解决办法
2398
查看次数

将 Excel XML 电子表格转换为 xlsx

我有一个 XML-Excel 文件(SpreadsheetML 格式):

<?xml version="1.0" encoding="utf-8"?>
<?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">
 <DocumentProperties xmlns="urn:schemas-microsoft-com:office:office">
 <Company>My Company</Company>
 </DocumentProperties>
 <Styles>
 <Style ss:ID="Default" ss:Name="Normal">
 <Alignment ss:Vertical="Bottom"/>
 <Borders/>
 <Font/>
 <Interior/>
 <NumberFormat/>
 <Protection/>
 </Style>
 <Style ss:ID="stTxt">
<Font ss:FontName="Arial" ss:Size="8"/>
<Alignment ss:Horizontal="Left"/>
<NumberFormat ss:Format="@"/>
 </Style>
<Style ss:ID="stTopHeadline">
<Font ss:FontName="Arial" ss:Size="8" />
<Alignment ss:Horizontal="Left"/>
<NumberFormat ss:Format="@"/>
 </Style>
...
Run Code Online (Sandbox Code Playgroud)

现在我需要使用 C# 将这些文件转换为 XLSX 文件。有没有办法使用 Open Xml 或其他库将其转换为 Excel 2010 XLSX 格式?

c# xml excel openxml spreadsheetml

5
推荐指数
1
解决办法
3031
查看次数

两个索引在同一行

我有一个rails应用程序,它以xls格式从我的数据库中导出内容.

我正在寻找创建两个单独的表而不将它们放在同一行.反正有两个索引在同一行吗?

<?xml version="1.0"?>
<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">
<ss:Worksheet ss:Name="Sheet">
    <Table>
    <% @data.each do |data| %>
        <Row ss:Index="1">
            <Cell ss:Index="1"><Data ss:Type="String"><%= data.name %></Data></Cell>
        </Row>
    <% end %>
    <% @moreData.each do |moreData| %>
        <Row ss:Index="1">
            <Cell ss:Index="2"><Data ss:Type="String"><%= moreData.name %></Data></Cell>
        </Row>
    <% end %>
    </Table>
</ss:Worksheet>
</Workbook>
Run Code Online (Sandbox Code Playgroud)

这就是我对上面代码的看法:

在此输入图像描述

如果可能的话,这就是我想要实现的,而不是将两个循环放在同一行中:

在此输入图像描述

xml ruby-on-rails spreadsheetml

5
推荐指数
1
解决办法
192
查看次数

使用XML格式化Excel单元格

我想以编程方式生成一个Excel(Salesforce Apex),类似于下面的屏幕截图。单元的数量,单元的背景色将在运行时确定,并因此使用编程方式。 在此处输入图片说明

为了实现这一点,我尝试为“单元格”>“数据”应用内联样式,但是似乎我们不能在那里应用内联样式。例如,样式通过应用于第一个单元格ss:StyleID="s66"。但是对于第二个Cell,它不能以这种方式使用内联样式。由于无法预先定义样式,因此我需要一些动态的方法。谁能确认这是否可行或提供任何指导?

<Row>

    <Cell ss:StyleID="s66"><Data ss:Type="String">Test Sheet1</Data></Cell>
    <Cell ><Data ss:Type="String"><Font ss:Color="#FF0000">Sample Text</Font></Data></Cell>

</Row>
Run Code Online (Sandbox Code Playgroud)

xml excel spreadsheetml

3
推荐指数
1
解决办法
2798
查看次数

Excel不插入前导零

我使用Office OpenXml写入Excel文件.该文件是一个模板,因此它已经包含了我的列的所有标题和格式.我将具有前导零的数字插入到"特殊"列中,该列基本上是10位数字.但是在我的代码中,我可以看到它正在设置值,例如0000000004.工作表中的结果,该4单元格中的值和实际单元格显示0000000004.

这是我写入单元格的代码.

  if (reader[2].ToString().Length < 9)
  {


        myworksheet.Cell(firstrow, 12).Value = reader[2].ToString(); //0045678945

  }
  else
  {
        myworksheet.Cell(firstrow, 12).Value = reader[2].ToString().Substring(0, 9); //0045678945

  }
Run Code Online (Sandbox Code Playgroud)

当我像上面所述打开excel表时,我的价值45678945不是0045678945

任何帮助,将不胜感激.

c# openxml spreadsheetml openxml-sdk

2
推荐指数
1
解决办法
7705
查看次数

使用Open XML SDK 2.0在Excel 2007中向单元格添加超链接

我似乎无法找到有关如何使用Open XML SDK 2.0在Excel 2007中向单元格添加超链接的任何文档或代码示例.我使用以下代码,但是我缺少一个步骤吗?

WorksheetPart workSheetPart = ExcelUtilities.GetWorkSheetPart(mWorkBookPart, "Program");

workSheetPart.AddHyperlinkRelationship(new Uri("http://www.google.com", UriKind.Absolute), true);

workSheetPart.Worksheet.Save();

mWorkBookPart.Workbook.Save();
Run Code Online (Sandbox Code Playgroud)

然后当我尝试打开Excel文档时,它说文件已损坏,因为无法找到超链接的关系ID.您如何设置或创建关系ID?

openxml spreadsheetml openxml-sdk

0
推荐指数
1
解决办法
1万
查看次数

标签 统计

spreadsheetml ×9

openxml ×6

excel ×4

xml ×4

c# ×3

openxml-sdk ×3

api ×1

ruby-on-rails ×1

themes ×1

vb6 ×1

xslt ×1