Tag: openxml

Excel工作簿始终只能在使用打开的xml创build后才能读取

我使用openxml 2.0从数据库转储一些数据到电子表格。 要求是用户可以添加额外的数据到工作表,但是当testing我注意到我不能保存在现有的工作簿。 我检查了信息面板,工作簿设置为只读。 我当然没有设置这是我的代码。 有任何想法吗?

如何使用xlsx4j格式化单元格types?

我在docx4j和openxml中是新的。 我有必要创build包含N个单独的表(现有的模板),并根据这些表预先创build图表的Excel文件。 实际上,我需要用数据库中的值replace一些文本占位符,并向用户显示完全生成的Excel文档。 我用replace值检查了示例,在源代码中获取最新的补丁后,它正在为我工​​作。 不幸的是,我的图表不能根据公式进行评估,因为replace的值是stringtypes。 好吧,我可以最初标记一些行以备将它们转换为数字,但是当我为这些行设置STCellType.N时,缺less必要的值并将未知值插入到此处。 源xlsm文件包含: F5 = ${gender:1} G5 = ${gender:1:value} H5 = =IF(G5>0; G5/SUM($G$5:$G$6)*100; "") F6 = ${gender:2} G6 = ${gender:2:value} H6 = =IF(G6>0; G6/SUM($G$5:$G$6)*100; "") replace后,我在结果xlsm文件中看到: F5 = Man G5 = 30 H5 = #VALUE! F6 = Woman G6 = 32 H6 = #VALUE! 注意:我正在插入“20”和“30”,而不是“30”和“32”。 这里是我的代码: List<String> numbers = new ArrayList<String>(); […]

如何使用SpreadsheetLight正确分组Excel中的行?

我目前正在使用SpreadsheetLight将一些数据导出到Excel,但是我从来没有把它们分组。 所以现在我需要你的帮助。 我有以下代码: if (groupingProperties.Any()) { int start = data.Rows.Count + 2; GroupRows<T, TId>(slDocument, data.AsEnumerable().Reverse(), ref start, 0, groupingProperties); } 其中slDocument是SpreadsheetLight的SLDocument的实例, data是通过groupingProperties正确sorting的DataTable 。 GroupRows方法: private static void GroupRows<T, TId>(SLDocument slDocument, IEnumerable<DataRow> rowCollection, ref int start, int level, params string[] groupingProperties) where T : AbstractEntity<T, TId> { foreach ( var grouped in from row in rowCollection […]

使用SAX Approch Open XML获取行中的所有单元格

我只是用Open XML SDK的DOM方法阅读一个大的xlsx文件。 它工作正常; 然而,这需要永远。 所以我想用SAX方法做同样的事情。 但是,我没有得到这个。 我在DOM方法中做的是为工作簿中的每个工作表获取工作表的名称。 然后我假定第一行有所有的列名。 接下来,我创build一个具有所有第一行中列出的属性的类。 之后,我读了其余的行。 对于每一行,我创build一个新的对象与我dynamic创build的自定义类。 然后,我遍历行中的每个单元格,以使用我得到的值填充对象。 这里是我用来完成我刚刚使用DOM方法描述的任务的代码。 public static List<Object> ConvertExcelArchiveToListObjects(string filePath) { … using (SpreadsheetDocument spreadsheetDocument = SpreadsheetDocument.Open(filePath, false)) { WorkbookPart wbPart = spreadsheetDocument.WorkbookPart; Sheets theSheets = wbPart.Workbook.Sheets; SharedStringTablePart sstPart = spreadsheetDocument.WorkbookPart.GetPartsOfType<SharedStringTablePart>().FirstOrDefault(); … var sheets = wbPart.Workbook.Sheets.Cast<Sheet>().ToList(); foreach (WorksheetPart worksheetpart in wbPart.WorksheetParts) { Worksheet worksheet = worksheetpart.Worksheet; […]

用overline写文本

我知道有一个公式,你可以使用,然后执行一个文本上划线,但是,当你点击该文本看起来很奇怪。 使用方程工具 – 重音和overbar作品,但我对字体有限,我需要使用某种字体,而不是坎布里亚math。 另外我想要一个更简单的方法,然后可以从代码后面生成。 有谁知道如何在Excel中使用overline编写文本?

样式表所需的元素

我负责将所有的Excel Interop转换为OpenXML,目前我正在学习它的格式。 我正在关注这个例子 ,我已经截取了下面的代码: private Stylesheet GenerateStyleSheet() { // see http://blogs.msdn.com/b/chrisquon/archive/2009/11/30/stylizing-your-excel-worksheets-with-open-xml-2-0.aspx for example return new Stylesheet( new Fonts( new Font( // Index 0 – The default font. new FontSize() { Val = 13 }, new Color() { Rgb = new HexBinaryValue() { Value = "000000" } }, new FontName() { Val = "Calibri" }), new […]

CopyFromRecordset vb.net相当于openxml电子表格

我有一个应用程序,我正在适应从我发现在这里使用OpenXML格式化良好的电子表格。 该工具连接到数据库以获取数据并构build20(ish)工作表。 这部分工作正常。 我有问题是获取数据行。 我最初尝试的方法是逐个单元格写入单元格,但是每个单元格可能高达50k行,因此逐个单元格写入的过程非常缓慢。 我从( http://www.codeproject.com/Articles/371203/Creating-basic-Excel-workbook-with-Open-XML )开始的应用程序是一个很好的介绍这个话题,并帮助了我极大的。 AddTable的代码中甚至有一个方法。 不幸的是,这并不完整,无论我尝试什么,我都无法让代码正确工作。 我有一个数据表,我传递给该方法,我正在努力做的是获取数据表转储到工作表。 这是我的代码到目前为止: Public Shared Function AddTable(spreadsheet As DocumentFormat.OpenXml.Packaging.SpreadsheetDocument, worksheet As DocumentFormat.OpenXml.Spreadsheet.Worksheet, columnIndex As UInt32, rowIndex As UInt32, tbl As System.Data.DataTable) 'Dim t As DocumentFormat.OpenXml.Spreadsheet.Table Dim row As DocumentFormat.OpenXml.Spreadsheet.Row Dim sheetPart As DocumentFormat.OpenXml.Packaging.WorksheetPart 'Dim sheetPart = spreadsheet.WorkbookPart.AddNewPart(Of DocumentFormat.OpenXml.Spreadsheet.Worksheet) Dim sheetData = New DocumentFormat.OpenXml.Spreadsheet.SheetData() 'Dim sheetPart = […]

PHPExcel(和其他)在读取xlsx时缺less单元格值

我使用不同的PHP库来读取来自各种文件types的客户订单。 现在我坚持一点。 我收到xlsx文件(附件),这可能是由一些未知的软件生成的。 当我使用PHPExcel(1.8.0)读取它时,我只能得到包含数字的单元格的值 – 首先看。 正如我们所知,xlsx是一些xml文件的归档容器。 当我对这些xmls进行了一些挖掘 – 我已经了解到,我只获取了表单文件(xls / worksheets / sheet1.xml中的xlsx)中描述的单元格的值。worksheet-> sheetData-> row-> having attr “t”设置为“n”。 一般来说,这意味着价值是在这个文件。 并将attr“t”设置为“s”的标签“c” – 值在SharedStrings.xml中进行了描述。 而PHPExcel没有得到它们。 或者我做错了什么? 这里是简单的代码: $objReader = PHPExcel_IOFactory::createReader('Excel2007'); $objReader->setReadDataOnly(true); $excel = $objReader->load($file); $excel->setActiveSheetIndex(0); $data = $excel->getActiveSheet()->toArray(null, true, true, true); print_r($data); 链接到文件

如何将EPPlus表单添加到OpenXML文档?

我想将使用EPPlus创build的工作表添加到OpenXml文档(OpenXml.Packaging.SpreadsheetDocument)中。 有没有一个相当简单的方法来做到这一点? 不幸的是,使用EPPlus打开Excel文档并添加表格,然后保存,导致Excel文件的问题,所以我想尝试使用OpenXml添加表格。

在打开由OpenXML SDK 2.5创build的Excel文件时出现错误

我有一个Excel文件。 我想从一张纸切到另一张纸。 使用OpenXML 2.0我达到了目的。 我的Excel由一个计算总和的列组成 参考: 插入新行,并使用OpenXML SDK 2.0移动现有的行 现在,excel已经完美地出现了。 即使我已经使用生产力工具validation了excel,并没有错误。 但是,当我将打开从文件夹的Excel,它给2错误。 1.错误:….如果您信任此工作簿的来源,请单击是。 此消息框始终显示。 删除logging:从/xl/worksheets/sheet3.xml部分共享公式 在评估sheet3的xml时,我发现了一行 <x:cr="A79" s="55" t="s"> <x:v>57</x:v> </x:c> <x:cr="B79" s="55"/> <x:cr="C79" s="56"/> <x:cr="D79" s="56"/> <x:cr="E79" s="102"> <x:ft="shared" ref="E78" si="0">SUM(E76)</x:f> <x:v>0</x:v> </x:c> </x:row> 从xml中删除“t =”shared“ref =”E78“si =”0“”之后,excel不再给出错误。 我怎样才能避免使用openxml这个错误?