Tag: openxml

使用开放的XML创buildexcel文件

我正在尝试使用Open XML来创build一个文件,但是当试图添加头文件的第一行文件被损坏,我无法打开,任何人都可以告诉我我在做什么错在这里? using (SpreadsheetDocument spreadsheetDocument = SpreadsheetDocument.Create("C:\\testpdfs\\mytest.xlsx", SpreadsheetDocumentType.Workbook)) { // Add a WorkbookPart to the document. WorkbookPart workbookpart = spreadsheetDocument.AddWorkbookPart(); workbookpart.Workbook = new Workbook(); // Add a WorksheetPart to the WorkbookPart. WorksheetPart worksheetPart = workbookpart.AddNewPart<WorksheetPart>(); worksheetPart.Worksheet = new Worksheet(new SheetData()); // Add Sheets to the Workbook. Sheets sheets = spreadsheetDocument.WorkbookPart.Workbook. AppendChild<Sheets>(new Sheets()); // Append a […]

我怎样才能导出数据表从excel 2007和从asp.net的PDF?

我必须使用asp.net应用程序中的数据库中的数据在Excel和PDF中制作graphics报告。 我不想使用COM对象,所以我一直在使用Open Xml Sdk从模板文件构buildExcel文件,并将响应redirect到生成的新文件,但我不知道如何使PDF文件…我接受任何有关如何在我的networking应用程序中生成PDF文件的意见…感谢您阅读本文的时间…

excel共享公式扩展

我正在使用C#中的OpenXML库来读取Excel文件。 我的要求之一是能够显示每个细胞有一个确切的公式。 OpenXML编码文件使用“共享公式”来减小文件大小。 喜欢这个: D3 : <x:ft="shared" ref="D3:D6" si="1" >D2+C3</x:f><x:v >130</x:v> D4 : <x:ft="shared" si="1" /><x:v >136</x:v> D5 : <x:ft="shared" si="1" /><x:v >141</x:v> D6 : <x:ft="shared" si="1" /><x:v >147</x:v> 在上面的例子(D2 + C3)中它是一个相当简单的根公式,显然这些可以是任意复杂的。 我想知道的是,如果有一个库或示例代码可以使用任何较低的单元格(例如D4,D5,D6)并返回“非共享”公式? 例如对于D6,这将返回“D5 + C6”

ToOADate(); 转换朱利安dateExcel

我正在使用OpenXML来读取和优化电子表格,date被存储为数字。 据我所知,这是一个朱利安格式,每一个我谷歌说要使用ToOADate(); 将这些数字转换为date。 我遇到的问题是ToOADate(); 在我的编译没有解决。 我正在使用Visual Basic 2013,C#Asp.net MVC应用程序。 看来这是在System Namespace中,但是我已经有一个使用System语句。 我显然错过了一些非常基本的东西 – 有人可以帮忙吗? var test = 41725; DateTime test2 = test.ToOADate(); 我得到的编译错误是 错误4'int'不包含'ToOADate'的定义,并且没有扩展方法'ToOADate'接受types'int'的第一个参数可以被发现(你是否缺lessusing指令或程序集引用?)

Excel打开xml sdk – 控制图表位置

我试图找出如何获得在工作表上的现有图表的位置,并了解它“隐藏”的范围(列和行)… 我有图表部分和图表元素。

如何提高在OpenXml Excel电子表格工具中从SharedStringTable中检索值的性能?

我使用DocumentFormat.OpenXml来读取Excel电子表格。 我有一个性能瓶颈用于从SharedStringTable对象查找单元格值的代码(它似乎是某种查找表的单元格值): var returnValue = sharedStringTablePart.SharedStringTable.ChildElements.GetItem(parsedValue).InnerText; 我已经创build了一个字典,以确保我只检索一次值: if (dictionary.ContainsKey(parsedValue)) { return dictionary[parsedValue]; } var fetchedValue = sharedStringTablePart.SharedStringTable.ChildElements.GetItem(parsedValue).InnerText; dictionary.Add(parsedValue, fetchedValue); return fetchedValue; 这使演出时间缩短了近50%。 但是,我的指标表明,从SharedStringTable对象获取值执行123,951次的代码行仍需要208秒。 有没有其他的方法来优化这个操作?

使用Open XML SDK进行Excel文件密码保护

我正在使用Open XML SDK来创buildExcel文件。 我想用密码保护他们。 不pipe怎样,你知道用Open XML SDK来保护excel文件的密码吗? 我知道“com”对象的方式来保护它们,但是它不适合我的应用程序。 我需要使用Open XML SDK或其他方式保护文件。

使用OpenXML在Excel单元格中添加date

这就是我所做的: CellFormat cellFormat = new CellFormat() { NumberFormatId = (UInt32Value)14U, FontId = (UInt32Value)0U, FillId = (UInt32Value)0U, BorderId = (UInt32Value)0U, FormatId = (UInt32Value)0U, ApplyNumberFormat = true }; sd.WorkbookPart.WorkbookStylesPart.Stylesheet.CellFormats.AppendChild<CellFormat>(cellFormat); _dateStyleIndex = sd.WorkbookPart.WorkbookStylesPart.Stylesheet.CellFormats.Count() – 1; 然后在我的代码稍后的某个地方 else if (type == DataTypes.DateTime) { DateTime dateTime = DateTime.Parse(text); double oaValue = dateTime.ToOADate(); cell.CellValue = new CellValue(oaValue.ToString(CultureInfo.InvariantCulture)); cell.DataType = new EnumValue<CellValues>(CellValues.Date); […]

使用C#读取和写入Excel的最快方法

可能重复: 从C#导出大量数据到excel的最佳/最快捷的方式是什么? 我正在创build一个具有以下function的Web应用程序: 假设pipe理员将一些数据存储在预定义的Excel模板文件中。 他将访问pipe理页面并上传此Excel。 应用程序读取此Excel并相应地更新数据库中的数据。 存储在数据库中的数据必须显示给访问ViewDetails页面的任何用户。 现在,数据应该在屏幕上显示给用户,并且必须提供“下载到Excel”选项。 另外,用户可以select过滤数据和sorting数据。 假设行数将是10000+,并且每行中大约有10-15列的文本/数字数据。 我目前的想法是使用Interop.Excel对象来读取Excel模板并将数据上传到数据库中。 对于阅读,我通常将所有的数据提取到DataTable中,然后根据需要进行显示。 我打算使用DataView进行sorting和过滤。 然而,我从来没有处理过这样大的数据,我不确定使用上述方法的性能。 我的问题是,要实现我的要求,最好和最快的方法是什么? 我读了一个地方,大概需要2-3分钟才能把这么多的数据写入Excel文件。 我还遇到过OpenXML:“Open XML是文字处理文档,演示文稿和电子表格的开放标准,可以由不同平台上的多个应用程序自由实现。 我可以使用它来更好地实现要求还是有其他的方式? 我最近开始开发C#Web应用程序,并首次使用Excel电子表格,所以如果有任何我不知道的明显答案,请耐心等待。 提前致谢 :)

C#打开XML SDK 2.0 Excel电子表格 – 从string数组中加载单元格范围

在.net Windows桌面应用程序中,我可以将一个string数组导入Excel电子表格中的一系列单元格中。 C#代码如下: using Excel = Microsoft.Office.Interop.Excel; // Create Application, Workbook, and Worksheet xlApp = new Microsoft.Office.Interop.Excel.Application(); xlWorkBook = xlApp.Workbooks.Add(misValue); xlWs = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1); // Move data from temp array into Excel spreadsheet. Excel.Range c1 = (Excel.Range)xlWs.Cells[startRowNum, 1]; Excel.Range c2 = (Excel.Range)xlWs.Cells[startRowNum + myTable.Rows.Count – 1, Columns.Count]; Excel.Range range = xlWs.get_Range(c1, c2); range.Value = tempArray; 我试图在ASP.Net网页中复制这个过程。 […]