Tag: openxml sdk

添加一个自定义命名空间,并通过c#openxml sdk在openxml excel中使用它

有没有一个例子来添加一个自定义名称空间 例如 xmlns:bluh = "http://www.bluhbluh.com" 在Workbook/WorkbookPart/SpreadSheetDocument级别 使用C#OpenXml SDK?

从文件加载Excel文件并更新内存中的单元格值

基于这篇文章:将文本插入电子表格文档中的单元格 我想在内存中加载一个Excel文件,并更新一些单元格值,并将其作为下载附件发送给客户端。 我知道有使用Stream Open方法的重载,但我不知道如何将Excel文件加载到它。 如何从文件加载Excel文件并更新内存中的单元格值?

使用openxml从电子表格中读取公式

我正在使用Openxml库阅读C#中的电子表格,并使用InnerText属性parsingCell对象的值,该属性返回一个String或null 。 当在单元格中存在一个公式时,我会在电子表格中获得文本文本,如下所示: 工作表Sheet1 =!A1Content 即由以前的公式(Sheet1!A1)+结果(内容)的string组成,并且这种情况也会发生,如:= 2 + 24 我怎样才能得到公式的结果?

以编程方式(C#)将Excel转换为图像列表

如何将Microsoft Excel(.xlsx)文件转换为PPT 我的预定algorithm 以编程方式获取 Excel文件中的图表 (c#)。 并保存在图像列表中 目前,我正在使用Microsoft Interop库,即使通过我不喜欢我没有任何自由的select这个任务 所以我目前的解决方法如下: 使用Microsoft Interop打开Excel文件; 在Excel中查找所有图表 使用该图表上的CopyPicture(),它将数据复制到剪贴板。 一旦我们在列表中的图像,我们可以添加到新的PPT文件创build新的PPT文件 请让我知道如何添加到剪贴板图片列表 public List<Image> Chartimages; public List<Metafile> ChartimagesMetafile; public List<BitmapSource> ChartimagesBitmapSource; public void InsertChartIntoChartlist() { try { // Create an instance of PowerPoint. powerpointApplication = new pptNS.Application(); // Create an instance Excel. excelApplication = new xlNS.Application(); // Open the Excel workbook […]

把大量的数据写入excel c#

我需要从数据库表中导出大量的数据到excel(xls / xlsx)文件。 它可能很容易1000万行和更多。 我需要不需要安装Office的开源解决scheme(SpreadsheetGear和Interop解决scheme不适用于我)。 我正在检查两个库:OpenXML SDK和EPPlus。 对于OpenXML SDK,我发现这个方法: private static void Write(string fileName, int numRows, int numCols) { using (var spreadsheetDocument = SpreadsheetDocument.Open(fileName, true)) { WorkbookPart workbookPart = spreadsheetDocument.WorkbookPart; WorksheetPart worksheetPart = workbookPart.WorksheetParts.First(); string origninalSheetId = workbookPart.GetIdOfPart(worksheetPart); WorksheetPart replacementPart = workbookPart.AddNewPart<WorksheetPart>(); string replacementPartId = workbookPart.GetIdOfPart(replacementPart); using (OpenXmlReader reader = OpenXmlReader.Create(worksheetPart)) { using (OpenXmlWriter writer […]

OpenXML:如何获取Excel工作表中选中的checkbox的列表?

我正在尝试阅读Excel文档以获取已选中的checkbox列表。 我在这里find了一个解决scheme,使用OpenXML在Word文档中查找checkbox,但是无法在Excel中checkbox。 看来CheckBox类是为WordProcessing文档而不是Excel保留的。 下面的代码显示了所有checkbox的列表,但无论我做什么,我都无法访问它们的值。 有任何想法吗? C#代码: using (SpreadsheetDocument spreadsheetDocument = SpreadsheetDocument.Open(@"C:\test.xlsx", false)) { WorkbookPart workBookPart = spreadsheetDocument.WorkbookPart; foreach (Sheet s in workBookPart.Workbook.Descendants<Sheet>()) { if (s.Name.ToString().Equals("Sheet1")) { WorksheetPart wsPart = workBookPart.GetPartById(s.Id) as WorksheetPart; foreach (DocumentFormat.OpenXml.Spreadsheet.Control cb in wsPart.Worksheet.Descendants<DocumentFormat.OpenXml.Spreadsheet.Control>()) { if (cb.Name.ToString().IndexOf("CheckBox") > -1) { textBox1.AppendText(cb.Name + "\n"); } } } } } 更新: 事实certificate,我们正在使用Active X控件。 以下代码能够正确定位checkbox,这是一个性能非常低的解决scheme,但不能使用OpenXML: […]

Excel Styles.xml应该是什么样子 – OpenXML

我正在生成一个大型的Excel文件,我试图使数据的标题加粗。 如果我注释掉所有的CellFormat代码并创build电子表格,那么文件将正确创build,但如果我不注释行,那么Excel会给我一个错误: Repaired Records: Format from /xl/styles.xml 。 (很明显,我点击Yes来修复文件。) 这是我的代码看起来像: Public Function Create_Spreadsheet_Stylesheet(ByRef stylePart As WorkbookStylesPart) As WorkbookStylesPart Dim font1Id As UInt32Value, font2Id As UInt32Value Dim font1 As New Font With { .FontName = New FontName With {.Val = "arial"}, .FontSize = New FontSize With {.Val = 9} } Dim font2 As New Font With […]

使用C#excel OpenXML API从模板创build报告

我一直在使用Microsoft COM模型来准备报告,但是如果服务器没有安装excel,它会很慢并且会失败。 所以我正在转向使用OpenXML从服务器进程创build报告,这个服务器进程也做了很多其他的事情。 我有一个模板,其中包含我需要更改或扩展的数据的命名范围,命名图表,命名图表系列,命名工作表等。所有我的格式包含在Excel文件中,我在我的服务器端进程中的所有格式都是填充的带有数据的文件。 这些是我需要使用Excel OpenXML进行复制的步骤: 打开一个现有的工作表,并基于它创build一个新的工作表。 通过工作表名称获取工作表 获取该工作表中的命名范围。 从数据填充命名范围,并根据需要扩展范围(基于数据集)。 按图表名称获取图表 按系列标题获取图表系列 将图表系列设置为新的范围 将图表导出为jpeg以在html中使用。 保存新的文件。 是否可以干净地在OpenXML中执行这些步骤? 任何例子都会帮助我很多。 或者这是一个轻量级的库。 这些第三方库中的一些太大,从头开始创build新表格更加有用。 任何帮助赞赏。

openxml sdk excel如何parsing和计算公式

Excel公式单元格中有公式= SUM(C2:C3)的Excel文件。 从云中的远程web服务器上托pipe的Web应用程序,没有安装Excel,我会传入C2和C3的值。 我也可以在Excel中确定确切的公式。 如何在C#中编程分析这个公式,以便我可以得到6的结果,如果C2和C3的input值分别是2和4? 如果公式非常复杂,那么parsing公式并在asp.net mvc应用程序的服务器端用C#计算它的最好方法是什么? 在这种情况下,代码示例真的会使我受益。

导出为ex​​cel数据时出错:“',hex值0x07,是一个无效的字符,使用c#

当我尝试导出kendo ui网格中的数据以达到excel时,我遇到了一个奇怪的问题。 错误: An exception of type 'System.ArgumentException' occurred in System.Xml.dll but was not handled in user code Additional information: ' ', hexadecimal value 0x07, is an invalid character. 和下面的方法我用于出口到Excel private static void WriteDataTableToExcelWorksheet(DataTable dt, WorksheetPart worksheetPart) { OpenXmlWriter writer = OpenXmlWriter.Create(worksheetPart); writer.WriteStartElement(new Worksheet()); writer.WriteStartElement(new SheetData()); string cellValue = ""; int numberOfColumns = dt.Columns.Count; bool[] […]