标签: spreadsheetml

OpenXML电子表格中的单元格样式(SpreadsheetML)

我使用OpenXML SDK在C#中生成了一个.xlsx电子表格,但无法弄清楚如何使单元格样式起作用.我一直在研究Excel生成的文件,并且无法弄清楚它是如何完成的.

现在,我正在创建一个填充,创建一个CellStyleFormat指向填充,创建一个CellFormat指向的索引CellStyleFormat,然后创建一个CellStyle指向CellFormat.

这是我用来生成文档的代码:

Console.WriteLine("Creating document");
using (var spreadsheet = SpreadsheetDocument.Create("output.xlsx", SpreadsheetDocumentType.Workbook))
{
    Console.WriteLine("Creating workbook");
    spreadsheet.AddWorkbookPart();
    spreadsheet.WorkbookPart.Workbook = new Workbook();
    Console.WriteLine("Creating worksheet");
    var wsPart = spreadsheet.WorkbookPart.AddNewPart<WorksheetPart>();
    wsPart.Worksheet = new Worksheet();

    var stylesPart = spreadsheet.WorkbookPart.AddNewPart<WorkbookStylesPart>();
    stylesPart.Stylesheet = new Stylesheet();
    stylesPart.Stylesheet.Fills = new Fills();

    // create a solid red fill
    var solidRed = new PatternFill() { PatternType = PatternValues.Solid };
    solidRed.AppendChild(new BackgroundColor { Rgb = HexBinaryValue.FromString("FF00FF00") });

    stylesPart.Stylesheet.Fills.AppendChild(new Fill { PatternFill = …
Run Code Online (Sandbox Code Playgroud)

c# excel openxml spreadsheetml

42
推荐指数
2
解决办法
9万
查看次数

使用OpenXml sdk 2.0创建Excel文档

我使用OpenXml SDK 2.0创建了一个Excel文档,现在我必须设置它的样式,但我不能.

我不知道如何绘制背景颜色或更改不同单元格中的字体大小.

我创建单元格的代码是:

private static Cell CreateTextCell(string header, string text, UInt32Value index)
{
    Cell c = new Cell();
    c.DataType = CellValues.InlineString;
    c.CellReference = header + index;
    InlineString inlineString = new InlineString();
    DocumentFormat.OpenXml.Spreadsheet.Text t = new DocumentFormat.OpenXml.Spreadsheet.Text();
    t.Text = text;
    inlineString.AppendChild(t);
    c.AppendChild(inlineString);
    return c;
} 
Run Code Online (Sandbox Code Playgroud)

c# excel openxml spreadsheetml

16
推荐指数
2
解决办法
4万
查看次数

如何使用OpenXML Format SDK从电子表格中读取数据?

我需要使用Open XML SDK 2.0从Excel 2007工作簿中的单个工作表中读取数据.我花了很多时间来搜索这样做的基本指导,但我只是在创建电子表格方面找到了帮助.

如何使用此SDK迭代工作表中的行,然后迭代每行中的单元格?

excel openxml spreadsheetml

16
推荐指数
2
解决办法
4万
查看次数

C#OPEN XML:从EXCEL到DATATABLE获取数据时跳过空单元格

任务

从数据导入excelDataTable

问题

将跳过不包含任何数据的单元格,并将具有该行中数据的下一个单元格用作空列的值.例如

A1是空的A2有一个值Tom,然后在导入数据A1得到的值A2A2保持空白

为了说清楚,我在下面提供一些屏幕截图

这是excel数据

在此输入图像描述

这是从excel导入数据后的DataTable 在此输入图像描述

public class ImportExcelOpenXml
{
    public static DataTable Fill_dataTable(string fileName)
    {
        DataTable dt = new DataTable();

        using (SpreadsheetDocument spreadSheetDocument = SpreadsheetDocument.Open(fileName, false))
        {

            WorkbookPart workbookPart = spreadSheetDocument.WorkbookPart;
            IEnumerable<Sheet> sheets = spreadSheetDocument.WorkbookPart.Workbook.GetFirstChild<Sheets>().Elements<Sheet>();
            string relationshipId = sheets.First().Id.Value;
            WorksheetPart worksheetPart = (WorksheetPart)spreadSheetDocument.WorkbookPart.GetPartById(relationshipId);
            Worksheet workSheet = worksheetPart.Worksheet;
            SheetData sheetData = workSheet.GetFirstChild<SheetData>();
            IEnumerable<Row> rows = sheetData.Descendants<Row>();

            foreach (Cell cell in rows.ElementAt(0))
            {
                dt.Columns.Add(GetCellValue(spreadSheetDocument, …
Run Code Online (Sandbox Code Playgroud)

c# datatable openxml spreadsheetml openxml-sdk

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

OpenXML SDK电子表格入门套件

我试图通过OpenXML SDK Spreadsheet API开始使用Excel文档.但我还没有找到任何关于如何从头创建xlsx文件的好指南甚至示例.仅限如何打开现有文档并进行修改.

我一直在考虑使用一个空的模板文档并复制它然后开始我的处理.但它的感觉是正确的.它可能更容易,但我不习惯使用一种技术我不觉得我至少理解"非常好".

所以我的问题是:有没有人对文章或书籍或任何其他解释API的资源有任何好的提示?

提前致谢./约翰

excel sdk openxml spreadsheetml openxml-sdk

12
推荐指数
1
解决办法
7529
查看次数

正确的SpreadsheetML文件扩展名

我想在本地驱动器上创建一个SpreadsheetML文件,可以通过在Windows资源管理器中单击文件在MS Excel或Open Office中打开.

我尝试了到目前为止我可以找到的所有注册到Microsoft Excel的文件扩展名.其中一些(.xls例如)允许打开文件,但在"文件格式与文件扩展名指定的格式不同"警告对话框之后.某些扩展(如.xlsx)会导致Excel在不打开文件的情况下显示格式错误对话框.

维基百科告诉我们应该扩展.xml,但是默认情况下它是由Web浏览器注册的.

这个,这个这个类似的问题是关于从网络下载文件,并设置适当的内容类型.但我无法更改本地文件的内容类型.

文章解释了这恼人的扩展硬化机理是如何工作的,以及如何禁用它,但我认为这是错误的强制用户禁用安全功能只允许电子表格文件被打开.

所以没有解决方案,或者我错过了什么?

windows excel-2007 spreadsheetml

12
推荐指数
1
解决办法
794
查看次数

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

我们正在尝试使用OOXML生成MS Excel工作簿并使用SSIS填充数据.我们能够生成工作簿和工作表,还能够在标题单元格中创建列和插入数据.我们还可以使用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打开并保存,我们可以读取相同的文件.有谁知道如何解决这个问题?

excel ssis openxml spreadsheetml openxml-sdk

9
推荐指数
1
解决办法
1174
查看次数

如何在Open xml中使用样式索引?

任何人都可以解释OpenXml中的样式索引如何工作?我有业务需求,我需要将背景颜色应用于Excel工作表中的某些单元格.并且某些样式已经应用于其他单元格.所以我需要决定我需要应用哪种样式的索引.

c# spreadsheetml openxml-sdk

8
推荐指数
1
解决办法
8546
查看次数

XLSX-如何摆脱默认的名称空间前缀x:?

我正在使用OOXML SDK生成XLSX电子表格,我需要摆脱x:名称空间前缀.我怎样才能做到这一点?

using (SpreadsheetDocument doc = SpreadsheetDocument.Open("template.xlsx", true))
            {
                //Save the shared string table part
                if (doc.WorkbookPart.GetPartsOfType().Count() > 0)
                {
                    SharedStringTablePart shareStringPart = 
doc.WorkbookPart.GetPartsOfType().First(); shareStringPart.SharedStringTable.Save(); } //Save the workbook doc.WorkbookPart.Workbook.Save(); }

这里,原始XLSX文件来自Excel 2007并且没有前缀,但是,在保存操作之后出现前缀.我怎么能避免这种情况?

namespaces openxml spreadsheetml openxml-sdk

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

Office Open XML中<ct ="str">和<c> <is>之间有什么区别?

这两个Office Open XML片段之间有什么区别?

<c r="A2" t="str">
  <v>btyler</v>
</c>
Run Code Online (Sandbox Code Playgroud)

<c r="B2">
  <is><t>btyler</t></is>
</c>    
Run Code Online (Sandbox Code Playgroud)

注意:我根据规范手动创建的第二个示例,第一个是来自实际的Excel工作簿.

双方似乎都有效,并根据规范几乎是相同的,所以我不知道为什么会有t="str"<is>似乎做同样的事情.Excel何时选择使用其中一个?

excel openxml xlsx spreadsheetml openxml-sdk

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