我有一个XLSX Excel文档,我正在使用OpenXML 2.5进行更新。可以理解的是,一些单元格更难以更新,因为它们当前为空。当单元格值为null时,以下方法为GetCell返回null,因此我无法继续进行单元格更新。
是否有任何一体化方法(或其他库)将更新单元格,即使它是null?
编辑:我在使用OpenXML时遇到了各种各样的问题,所以在此期间我开始使用ClosedXML,而在每种情况下,ClosedXML都能正常运行。
public static void UpdateCell(string docName, string text,
uint rowIndex, string columnName)
{
// Open the document for editing.
using (SpreadsheetDocument spreadSheet =
SpreadsheetDocument.Open(docName, true))
{
WorksheetPart worksheetPart =
GetWorksheetPartByName(spreadSheet, "Sheet1");
if (worksheetPart != null)
{
Cell cell = GetCell(worksheetPart.Worksheet,
columnName, rowIndex);
cell.CellValue = new CellValue(text);
cell.DataType =
new EnumValue<CellValues>(CellValues.Number);
// Save the worksheet.
worksheetPart.Worksheet.Save();
}
}
}
private static Cell GetCell(Worksheet worksheet,
string columnName, uint rowIndex)
{
Row row = GetRow(worksheet, rowIndex);
if (row == null) return null;
var FirstRow = row.Elements<Cell>().Where(c => string.Compare
(c.CellReference.Value, columnName +
rowIndex, true) == 0).FirstOrDefault();
if (FirstRow == null) return null;
return FirstRow;
}