.Net Core使用OpenXML导出、导入Excel
程序员文章站
2022-05-26 10:58:10
导出excel是程序很常用到的功能,.net core可以借助open-xml-sdk来导出excel。
open-xml-sdk
open-xml-sdk是是微软开源...
导出excel是程序很常用到的功能,.net core可以借助open-xml-sdk来导出excel。
open-xml-sdk
open-xml-sdk是是微软开源的项目。open xml sdk是用于open xml文档(docx, xlsx, and pptx)的开源类库。它可以:
- 生成word,excel,ppt时有非常好的性能
- 从xml数据源中填充内容到word文档中
- 可将单个word,excel,ppt分成多个文件或者将多个合并到一个文件中
- docx => html/css 和 html/css => docx 提供友好便捷的方式
- 提取excel中的数据
- 用正则表达式查找或者替换docx / pptx中的内容
- 更新 docx / pptx 中缓存的数据或者嵌入的表格.
- 文档内容的修改, 例如从文件中删除跟踪的修订或删除不可接受的内容.
依赖 windowsbase 或 system.io.packaging
开源地址:open-xml-sdk
nuget:documentformat.openxml
示例
首先添加nuget包引用
直接上代码:
static void main(string[] args) { var spreadsheetdocument = spreadsheetdocument.create("f:\\openxml.xlsx", spreadsheetdocumenttype.workbook); var workbookpart = spreadsheetdocument.addworkbookpart(); workbookpart.workbook = new workbook(); worksheetpart worksheetpart = workbookpart.addnewpart(); worksheetpart.worksheet = new worksheet(new sheetdata()); sheets sheets = spreadsheetdocument.workbookpart.workbook.appendchild(new sheets()); sheet sheet = new sheet() { id = spreadsheetdocument.workbookpart.getidofpart(worksheetpart), sheetid = 1, name = "sheet1" }; sheets.append(sheet); var sheetdata = worksheetpart.worksheet.getfirstchild(); for (int i = 0; i < 10; i++) { row row = new row(); for (int j = 0; j < 10; j++) { cell datacell = new cell(); datacell.cellvalue = new cellvalue($"{i + 1}行{j + 1}列"); datacell.datatype = new enumvalue(cellvalues.string); row.appendchild(datacell); } sheetdata.append(row); } workbookpart.workbook.save(); spreadsheetdocument.close(); }
导出的excel如图:
读取excel
读取excel的代码会相对简单一些:
static void main(string[] args) { using (spreadsheetdocument doc = spreadsheetdocument.open(@"f:\openxml.xlsx", false)) { workbookpart wbpart = doc.workbookpart; sheet mysheet = (sheet)doc.workbookpart.workbook.sheets.childelements.firstordefault(); worksheet worksheet = ((worksheetpart)wbpart.getpartbyid(mysheet.id)).worksheet; sheetdata sheetdata = (sheetdata)worksheet.childelements.firstordefault(); foreach (var row in sheetdata.childelements) { foreach (var cell in (row as row).childelements) { var cellvalue = (cell as cell).cellvalue; if (cellvalue != null) { console.writeline(cellvalue.text); } } } } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
推荐阅读
-
.net core ajax使用EPPlus上传excle导入总结
-
【C#常用方法】2.DataTable(或DataSet)与Excel文件之间的导出与导入(使用NPOI)
-
建议收藏:.net core 使用EPPlus导入导出Excel详细案例,精心整理源码已更新至开源模板
-
.NET Core 使用NPOI读取Excel返回泛型List集合
-
net core WebApi——使用NPOI导入导出操作
-
ASP.NET MVC使用EPPlus,导出数据到Excel中
-
在ASP.NET Core中使用EPPlus导入出Excel文件
-
让 .NET 更方便的导入导出 Excel
-
ASP.NET 开源导入导出库Magicodes.IE 完成Excel图片导入导出
-
Asp.Net Core实现Excel导出功能的实现方法