利用OpenXml SDK创建Excel文件和给指定的worksheet填充数据
来源:互联网 发布:中国少儿编程网 编辑:程序博客网 时间:2024/06/06 19:02
本程序分别演示了如何创建Excel文件并包含指定名称的Worksheet;如何给Excel文件中指定的Worksheet填充数据
using System;using System.Linq;using DocumentFormat.OpenXml.Packaging;using DocumentFormat.OpenXml;using DocumentFormat.OpenXml.Spreadsheet;using System.Collections.Generic;using System.IO;namespace OpenXmlExcelFillDataCS{ class Program { static void Main(string[] args) { // create the Excel file contains a worksheet named test CreateSpreadSheet("test"); // get the empty Data.xlsx file from bin folder string path = AppDomain.CurrentDomain.BaseDirectory + "DataTemplate.xlsx"; if (File.Exists(path)) { File.Copy(path, "Data.xlsx", true); { FillData("Data.xlsx", "Sheet2"); } } else { Console.WriteLine("please create the template file: " + path); } } private static void FillData(string path, string sheetName) { using (SpreadsheetDocument document = SpreadsheetDocument.Open( path, true)) { // find sheets by sheet name IEnumerable<Sheet> sheets = document.WorkbookPart.Workbook.Descendants<Sheet>().Where(s => s.Name == sheetName); if (sheets.Count() == 0) { // The specified worksheet does not exist. return; } WorksheetPart worksheetPart = (WorksheetPart)document.WorkbookPart.GetPartById(sheets.First().Id); Worksheet worksheet = worksheetPart.Worksheet; SheetData sheetData = worksheet.GetFirstChild<SheetData>(); // fill data to Cell F4 Row row1 = new Row() { RowIndex = (UInt32Value)4U }; Cell cell1 = new Cell() { CellReference = "F4" }; CellValue cellValue1 = new CellValue(); cellValue1.Text = "222"; cell1.Append(cellValue1); row1.Append(cell1); // fill data to Cell C5 Row row2 = new Row() { RowIndex = (UInt32Value)5U }; Cell cell2 = new Cell() { CellReference = "C5" }; CellValue cellValue2 = new CellValue(); cellValue2.Text = "111"; cell2.Append(cellValue2); row2.Append(cell2); // append rows to SheetData elment sheetData.Append(row1); sheetData.Append(row2); // save worksheet worksheet.Save(); } } private static void CreateSpreadSheet(string sheetName) { using (SpreadsheetDocument spreadSheet = SpreadsheetDocument.Create( System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "test.xlsx"), SpreadsheetDocumentType.Workbook)) { // create the workbook spreadSheet.AddWorkbookPart(); spreadSheet.WorkbookPart.Workbook = new Workbook(); // create the worksheet spreadSheet.WorkbookPart.AddNewPart<WorksheetPart>(); spreadSheet.WorkbookPart.WorksheetParts.First().Worksheet = new Worksheet(); // create sheet data spreadSheet.WorkbookPart.WorksheetParts.First().Worksheet.AppendChild(new SheetData()); // create row spreadSheet.WorkbookPart.WorksheetParts.First().Worksheet.First().AppendChild(new Row()); // create cell with data spreadSheet.WorkbookPart.WorksheetParts.First().Worksheet.First().First().AppendChild( new Cell() { CellValue = new CellValue("100") }); // save worksheet spreadSheet.WorkbookPart.WorksheetParts.First().Worksheet.Save(); // create the worksheet to workbook relation spreadSheet.WorkbookPart.Workbook.AppendChild(new Sheets()); spreadSheet.WorkbookPart.Workbook.GetFirstChild<Sheets>().AppendChild(new Sheet() { Id = spreadSheet.WorkbookPart.GetIdOfPart(spreadSheet.WorkbookPart.WorksheetParts.First()), SheetId = 1, Name = sheetName }); spreadSheet.WorkbookPart.Workbook.Save(); } } }}
运行效果:
创建的工作簿
填充数据的工作簿
- 利用OpenXml SDK创建Excel文件和给指定的worksheet填充数据
- 利用OpenXml SDK创建Excel文件和给指定的worksheet填充数据
- 利用OpenXml SDK冻结Excel worksheet窗格和设置列框
- 在Excel(xlsx)文件中用OpenXml SDK 添加一个新的Worksheet并写入字符串
- 利用OpenXml SDK添加样式以填充Excel前景色
- 利用OpenXml SDK改变Excel样式(如单元格填充色)
- c# 向Excel文件写入数据(Workbook 和Worksheet )
- OpenXml 获取Excel文件指定工作簿中的表格部件和表格数量
- Openxml 读取指定列的数据
- 使用OpenXml操作Excel,创建excel,导入DataTable的数据等
- OpenXML操作excel创建和删除工作表
- OpenXml方式读取Excel数据
- 利用java创建和读取excel文件
- 从Minitab 15的worksheet向Excel 2003中复制和粘贴数据时候出现的问题
- Openxml读取和生成简单类型的Excel
- ODBC 解析EXCEL 文件 选择worksheet name
- OpenXML读写EXCEL的例子
- java利用poi创建excel文件并写入数据
- 后台(crontab,at,&,nohup)
- 如何在JNI中抛异常
- hadoop Capacity Scheduler使用手记
- XMLHttpRequest对象无法访问
- 用户和组的管理
- 利用OpenXml SDK创建Excel文件和给指定的worksheet填充数据
- ORA-12048:刷新实体化视图
- HashMap的遍历两种常用的方法,那就是使用keyset及entryset来进行遍历
- xml
- XCODE4.2 IOS5 ARC控制
- Linux 下垃圾清理工具 BleachBit
- 验证日期的前后
- 建图(Graph类的插点和插边实现)
- MTK添加资源(含52_11B情况的说明)