OpenXml To Excel之创建文档2
来源:互联网 发布:mac系统全选快捷键 编辑:程序博客网 时间:2024/06/06 08:52
上篇讲到了创建文档的其中一种方式(通过模板创建),本篇将介绍完全由代码创建。
创建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之创建文档2
- OpenXml To Excel之创建文档
- OpenXml To Excel之准备工作
- OpenXml To Excel之插入图表
- OpenXml To Excel之写大数据
- 使用OpenXml 2.0向Excel文档加入自定义Ribbon
- OpenXML操作excel创建和删除工作表
- Web系统下Office文档的处理 之OpenXML基础
- C# OpenXML excel (SpreadsheetDocument )
- Html to OpenXml
- 使用OpenXml操作Excel,创建excel,导入DataTable的数据等
- csharp: Export DataTable to Excel using OpenXml 2.5 in asp.net
- OpenXml SDK 2.0 创建Word文档——最简化的版本
- OpenXml SDK 2.0 创建Word 2010文档(不带[Compatibility])最简代码
- 用OpenXml SDK 2.0 创建一个页脚带页码的Word文档
- 利用OpenXml SDK创建Excel文件和给指定的worksheet填充数据
- 利用OpenXml SDK创建Excel文件和给指定的worksheet填充数据
- 利用OpenXml生成Word2007文档
- Android fill_parent和wrap_content分析
- iOS面试那些事
- Javascript 笔记(2)----Closure
- xcode4.6运行高德Amap(V2.0.2)官方Demo(library not found for -lMAMapKit错误解决)
- 线性表知识的总结
- OpenXml To Excel之创建文档2
- 解决CCPageTurn3D只有往左翻页的问题
- 执行力
- 总结
- outer joins
- [Go] --- LiteIDE配置Go语言的代码智能补全
- Ecshop二次开发:如何创建一个自定义页面(一)
- IT人士成功的6大步骤
- java异常链