Tag: openxml

OpenXml和无法创build互斥

我试图通过openXml库创buildExcel文档,但是当我想从大量的数据创buildExcel,服务器鞋我无法创build互斥体。 (从HRESULTexception:0x80131464)错误,堆栈跟踪是: [IsolatedStorageException: Unable to create mutex. (Exception from HRESULT: 0x80131464)] System.IO.IsolatedStorage.IsolatedStorageFile.Open(String infoFile, String syncName) +0 System.IO.IsolatedStorage.IsolatedStorageFile.Lock(Boolean& locked) +370 System.IO.IsolatedStorage.IsolatedStorageFileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, IsolatedStorageFile isf) +468 System.IO.IsolatedStorage.IsolatedStorageFileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, IsolatedStorageFile isf) +35 MS.Internal.IO.Packaging.SafeIsolatedStorageFileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, ReliableIsolatedStorageFileFolder folder) +102 MS.Internal.IO.Packaging.PackagingUtilities.CreateUserScopedIsolatedStorageFileStreamWithRandomName(Int32 […]

使用“Openxml writer”在Excel中合并单元格

我想合并单元格是excel。 通过使用DOM方法,我可以轻松完成。 但是,因为我的Excel文件太大,当我试图获得工作表,它会抛出内存exception。 所以我必须使用SAX方法来读取excel文件。 但是我不知道如何在这种方法中合并单元格。 search了很多,但每一个给DOM解决scheme。 任何人都可以帮助,预先感谢。

使用Open XML在Excel上插入图像

我正在使用这个工具包来编写Excel。每件事情都很好, 但我没有得到如何插入图像,并把我的Excel中的一些行上的样式 我正在使用c#

更改macros的默认图标

任何macros的默认图标,无论您将其添加到快速访问工具栏或function区,看起来像这样: 。 有没有办法改变它之前分配给一个button? 也许通过编辑加载项的.xlam文件中的customUI.xml (将其重命名为.zip文件之后)? customUI.xml允许您在2400个隐藏的图标中进行select,这些图标在Excel的选项中是不可见的,这就是让这个文件变得有趣的原因(更多信息在这里和这里 )。 请注意,我不想更改默认的macros图标,只有我的macros的默认图标,以区别于其他。 谢谢。

将数据导出到Excel通过Open XML启用macros

我有一个Excel工作表,我用作模板文件导出数据。 Excel工作表是XLSM文件,在VBA中写入的代码很less。 每次使用时间戳复制和重命名文件,应将数据写入复制的xlsm文件, 但不写入数据 。 我正在使用Open XML库。 如果我使用xlsx模板文件,也是一样的。 是不是可以通过Open XML在xlsm Excelmacros上编写? 如果是,请记住任何指示。

在.Net的Excel文档中查找最右边的单元格

我正在通过DocumentFormat.OpenXml库阅读Excel文档。 有没有一个很好的方法来找出它有多less列? 我刚刚在调查一个bug时遇到的当前代码是这样的: public string getMaxColumnName(SheetData aSheetData) { string lLastCellReference = aSheetData.Descendants<Cell>().Last().CellReference.InnerText; char[] lRowNumberIndex = lLastCellReference.IndexOfAny(new char[] { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' }); return lLastCellReference.Substring(0, lRowNumberIndex); } 在英文中:find工作表中的最后一个单元格,获取其单元格引用(如“CB99”),并检索第一个数字之前的所有内容。 问题是,工作表中的最后一个单元格不一定在最右边的列中。 我有一张整齐的长方形桌子。 它有1000行填充列A到M,所以函数应该返回string“M”。 但是由于单元格C1522中存在多余的空格字符,因此计算为最后一个单元格,所以函数会将最大列标记为“C”。 我最初的冲动是用某种Max(columnNumber)replaceLast()调用。 不过, Cell显然不公开一个实际的列号,只有这个复合的CellReferencestring。 我不认为我想在那里做谓词分割。 有没有办法find工作表最右边的列,而不必parsing每个单元格的CellReference ?

OpenXMLselect一个特定的列

我试图select一个特定的列,以便我可以自动设置它的宽度,但没有什么成功。 我应该不能使用MSDN的GetRow版本来从列集合中select列吗? return worksheet.GetFirstChild<SheetData>().Elements<Row>().Where(r => r.RowIndex == rowIndex).First(); return worksheet.GetFirstChild<SheetData>().Elements<Column>().Where(r => r.Min== columnNumber && r.Max == columnNumber).First(); 我采取正确的方法? FWIW我知道如何从头创build列并设置宽度,但这是不可行的,因为我不知道在我的构造函数中创build它们时列中的数据是什么。

只读或locking特定的单元格或行使用打开XML XML SDK

我正在使用打开xml sdk导出excel。 我得到的Excel文件,并将该文件复制到另一个地方,然后我插入数据的新行。 我应该使该行为只读(或我必须locking)使用打开XML XML SDK .. 怎么做 ?

OpenXML – 如何将电子表格文档保存到stream?

我从stream中获取.xlsx文档(使用SpreadsheetDocument.Open(stream, false)然后将其存储到Spreadsheetdocument字段中,以便稍后可以维护同一个对象。 我有一个保存方法,我应该在理想情况下能够将SpreadsheetDocument保存到一个stream。 有document..WorkbookPart.Workbook.Save(stream); 但是这只是给我一个空的文件,当我只保存第一张(使用document.WorkbookPart.WorksheetParts.First().Worksheet.Save(stream);该文件是一个混乱,不包含相关信息。将电子表格文档保存到stream中?

将表格而不是范围定义为数据透视表“cacheSource”

我正在构build一个工具来自动创build包含一个表和一个关联的数据透视表的Excel工作簿。 表结构在一张纸上,稍后使用另一个工具从数据库中提取数据。 数据透视表是在第二张纸上使用上一张表中的表作为源。 我正在使用EPPlus来帮助构build工具,但遇到指定cacheSource问题。 我正在使用以下来创build范围和数据透视表: var dataRange = dataWorksheet.Cells[dataWorksheet.Dimension.Address.ToString()]; var pivotTable = pivotWorksheet.PivotTables.Add(pivotWorksheet.Cells["B3"], dataRange, name); 这将cacheSource设置为: <x:cacheSource type="worksheet" xmlns:x="http://schemas.openxmlformats.org/spreadsheetml/2006/main"> <x:worksheetSource ref="A1:X2" sheet="dataWorksheet" /> 或在Excel中,数据源设置为: dataWorksheet!$A$1:$X$2 这工作正常,如果表大小永远不会改变,但作为行数将是dynamic的,我发现数据刷新时,数据只从指定的初始范围读取。 我想要做的是以编程方式将cacheSource设置为: <x:cacheSource type="worksheet" xmlns:x="http://schemas.openxmlformats.org/spreadsheetml/2006/main"> <x:worksheetSource name="dataWorksheet" /> </x:cacheSource> 或在Excel中,将数据源设置为: dataWorksheet 我相信有可能通过直接访问XML来做到这一点(任何指针都将是最受欢迎的),但有什么办法可以使用EPPlus来做到这一点?