OpenXml 操作Excel,Word,PPT

转载自线上数据建模 (allmlp.com)
OpenXml 可以在不用打开Excel,Word和PPT的情况下,对其进行操作。
我们知道Excel,PPT和word可以通过对其进行解压,发现所有的数据都是保存在xml里的,如下图所示,因此我们可以通过编译XML来获取其中的数据。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;
using System.Diagnostics;
using System.Threading;
using DocumentFormat.OpenXml.Presentation;
using DocumentFormat.OpenXml.Packaging;
using DocumentFormat.OpenXml.Spreadsheet;
using DocumentFormat.OpenXml;
using System.Collections;

public static SpreadsheetDocument document1;
public static WorkbookPart wbPart = null;
public static openxml_demo()
{
       document1 = SpreadsheetDocument.Open("/tmp/openxml.xlsx", true);
       wbPart = document1.WorkbookPart;
       //获取指定sheetName名字的sheet
       Sheet sheet = wbPart.Workbook.Descendants<Sheet>().Where((s) => s.Name == sheetName).FirstOrDefault();
       Worksheet ws = ((WorksheetPart)(wbPart.GetPartById(sheet.Id))).Worksheet;
       //获取sheetdata
       SheetData sheetData = ws.GetFirstChild<SheetData>();
       //通过rowIndex(行索引)获取row
       var row = wsData.Elements<Row>().Where(r => r.RowIndex.Value == rowIndex).FirstOrDefault();
       //通过addressName(类似于A1,A2...)获取cell对象
       Cell cell = row.Elements<Cell>().Where(c => c.CellReference.Value == addressName).FirstOrDefault();
       //可以将数据(stringIndex某个字符串变量)插入到指定的cell中,并指定数据类型
       cell.CellValue = new CellValue(stringIndex.ToString());
       cell.DataType = new EnumValue<CellValues>(CellValues.SharedString);
       ws.Save();
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值