OpenXml To Excel之创建文档2
2013-03-28 17:55
417 查看
上篇讲到了创建文档的其中一种方式(通过模板创建),本篇将介绍完全由代码创建。
创建sheet
这里补充一下如何在单元格中插入公式
如何Merge单元格
创建sheet
public static void CreateSpreadsheetWorkbook(string filepath) { // Create a spreadsheet document by supplying the filepath. // By default, AutoSave = true, Editable = true, and Type = xlsx. SpreadsheetDocument spreadsheetDocument = SpreadsheetDocument.Create(filepath, 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 new worksheet and associate it with the workbook. Sheet sheet = new Sheet() { Id = spreadsheetDocument.WorkbookPart.GetIdOfPart(worksheetPart), SheetId = 1, Name = "mySheet" }; sheets.Append(sheet); workbookpart.Workbook.Save() // Close the document. spreadsheetDocument.Close(); }获取sheetData,填充数据这里不在具体讲,上篇中已经提及。
这里补充一下如何在单元格中插入公式
IEnumerable<Cell> cells = row.Elements<Cell>().Where(c => c.CellReference.Value == cellRef); if (cells.Count() == 0) return; else { Cell cell = cells.First(); string startCell = GetCellReference(i); string endCell = GetCellReference(i) + (rowCount + 2); string formula = "=SUM(" + startCell + ":" + endCell + ")"; cell.CellFormula = new CellFormula { CalculateCell = true, Text = formula }; }
如何Merge单元格
public static void MergeSpeCells(string docName, string sheetName, string startCellName, string endCellName) { using (SpreadsheetDocument document = SpreadsheetDocument.Open(docName, true)) { Worksheet worksheet = GetWorksheet(document, sheetName); if (worksheet == null || string.IsNullOrEmpty(startCellName) || string.IsNullOrEmpty(endCellName)) { return; } //check cell exist CreateSpreadsheetCellIfNotExist(worksheet, startCellName); CreateSpreadsheetCellIfNotExist(worksheet, endCellName); MergeCells mergeCells; if (worksheet.Elements<MergeCells>().Count() > 0) { mergeCells = worksheet.Elements<MergeCells>().First(); } else { mergeCells = new MergeCells(); //insert mergecells into worksheet worksheet.InsertAfter(mergeCells, worksheet.Elements<SheetData>().First()); } //insert mergecell MergeCell mc = new MergeCell() { Reference = new StringValue(startCellName + ":" + endCellName) }; mergeCells.Append(mc); worksheet.Save(); } }
相关文章推荐
- OpenXml To Excel之创建文档
- Office Open XML学习(1)-创建excel文档,并向单元格中插入字符串
- 使用XML创建Excel文档
- OpenXml SDK 2.0 创建Word文档 添加页、段落、页眉和页脚
- [转]how to programatically access built-in properties of open xml word doc(如何读取open xml格式文档属性)
- 使用XML创建Excel文档
- Linq To Xml 创建修改xml文档
- How to convert Word table into Excel using OpenXML
- OpenXml To Excel之准备工作
- OpenXml To Excel之插入图表
- C#利用XML创建Excel文档的实现方法
- 使用xml来创建excel文档,运行时无需excel
- 使用XML创建Excel文档
- 使用XML创建Excel文档-.NET教程,XML应用 http://www.z6688.com/info/47612-1.htm
- 用OpenXml SDK 2.0 创建一个页脚带页码的Word文档
- OpenXml SDK 2.0 创建Word文档——最简化的版本
- asp.net使用XML创建Excel文档
- 用OpenXml SDK 2.0 创建一个页脚带页码的Word文档
- OpenXml SDK 2.0 创建Word文档——最简化的版本
- csharp: Export DataTable to Excel using OpenXml 2.5 in asp.net