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();
}