static void Main(string[] args)
{
string src = @"d:\temp\source.xlsx";
//NOPI
IWorkbook workbook = new XSSFWorkbook(src);
ISheet sheet = workbook.GetSheetAt(0);
sheet.GetRow(0).GetCell(0).SetCellValue("已修改");
FileStream sw = File.Create(@"d:\temp\npoi.xlsx");
workbook.Write(sw);
sw.Close();
//EPPlus
using (ExcelPackage p = new ExcelPackage(new FileInfo(src)))
{
var sht = p.Workbook.Worksheets.First();
sht.Cells[1, 1].Value = "已修改";
p.SaveAs(new FileInfo(@"d:\temp\epplus.xlsx"));
}
//OpenXML SDK 2.5
//REF: http://msdn.microsoft.com/en-us/library/office/cc850837.aspx
string dst = src.Replace(Path.GetFileName(src), "sdk.xlsx");
File.Copy(src, dst, true);
using (var shtDoc = SpreadsheetDocument.Open(dst, true))
{
var sht = shtDoc.WorkbookPart.Workbook.Descendants<Sheet>().First();
var shtPart = shtDoc.WorkbookPart.GetPartById(sht.Id) as WorksheetPart;
var cell = shtPart.Worksheet.Descendants<Row>().First()
.Descendants<Cell>().First();
cell.RemoveAllChildren();
//REF: InlineString http://bit.ly/ZpUf18
var ins = new InlineString();
ins.AppendChild(new Text("已修改"));
cell.AppendChild(ins);
cell.DataType =
new DocumentFormat.OpenXml.EnumValue<CellValues>(
CellValues.InlineString);
//shtPart.Worksheet.Save();
shtDoc.WorkbookPart.Workbook.Save();
shtDoc.Close();
}
}