【问题标题】:Save txt file in an Excel spreadsheet (xlsx container)将 txt 文件保存在 Excel 电子表格(xlsx 容器)中
【发布时间】:2014-05-23 17:37:38
【问题描述】:

我希望能够在 xlsx 文件中包含一些原始数据文件 (txt)。我认为这应该是可能的,因为图像也可以包含在内。但是,我还没有找到任何有关如何执行此操作的文档。 (如果我可以使用 Open XML 库来做到这一点,那就更好了。)

我发现了一个关于堆栈溢出的问题 + 答案,这听起来很有希望,但我没有为我(或电子表格)工作。

https://stackoverflow.com/a/3128463/727061

编辑:似乎我犯了一个错误,导致 Excel 文件损坏,重试后上述解决方案有效!

【问题讨论】:

    标签: c# excel openxml


    【解决方案1】:

    在研究了使用此答案生成的文件后:https://stackoverflow.com/a/3128463/727061 我发现了如何使用 Open XML 将文件添加到电子表格中。

    c#:

    // base64 encoded data
    string base64Data = "ZG9lIG1paiBtYWFyIHdhdCBleHRyYSB0ZWtzdA==";
    
    // create a spreadsheet document
    val spreadsheetDocument = SpreadsheetDocument.Create(filePath, SpreadsheetDocumentType.Workbook);
    
    // initialize spreadsheet here
    
    // add data to spreadsheet document
    ExtendedPart ePart = this.spreadsheetDocument.WorkbookPart.AddExtendedPart("http://schemas.microsoft.com/office/2007/relationships/txt", "custom/txt", ".txt", "rId1");
    System.IO.Stream data = GetBinaryDataStream(base64Data);
    ePart.FeedData(data);
    data.Close();
    
    // retreive all extended data parts
    val extendedParts = spreadsheetDocument.WorkbookPart.GetPartsOfType<ExtendedPart>().ToList();
    
    // list those parts
    Console.Writeline("Extended parts in file");
    foreach(ExtendedPart p in extendedParts)
    {
        Console.writeline(this.spreadsheetDocument.WorkbookPart.GetIdOfPart(p));
        Console.writeline("-----------------");
        Console.writeline(new StreamReader(elem.GetStream()).ReadToEnd());
    }
    

    【讨论】:

      猜你喜欢
      • 2013-05-15
      • 2017-05-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多