我正在尝试使用C#openXML插入Excel文件(.xlsx)单元,>
但是当我打开创建的Excel文件时,需要通过显示以下错误来修复它,
已修复的记录:/xl/worksheets/sheet1.xml部分的单元格信息
这是我的代码。
public void InsertText(TestModelList data) { var date_time = DateTime.Now.ToString().Replace("/", "_").Replace(":", "_"); string OutputFileDirectory = "E:\\TEST"; string fileFullName = Path.Combine(OutputFileDirectory, "Output.xlsx"); if (File.Exists(fileFullName)) { fileFullName = Path.Combine(OutputFileDirectory, "Output_" + date_time + ".xlsx"); } using (SpreadsheetDocument spreadSheet = SpreadsheetDocument.Create(fileFullName, SpreadsheetDocumentType.Workbook)) { WorkbookPart wbp = spreadSheet.AddWorkbookPart(); WorksheetPart wsp = wbp.AddNewPart<WorksheetPart>(); Workbook wb = new Workbook(); Worksheet ws = new Worksheet(); SheetData sd = new SheetData(); InsertToCell(1, "C", "1C", sd); ws.Append(sd); wsp.Worksheet = ws; wsp.Worksheet.Save(); Sheets sheets = new Sheets(); Sheet sheet = new Sheet() { Id = wbp.GetIdOfPart(wsp), Name = "test", SheetId = 1 }; sheets.Append(sheet); wb.Append(sheets); spreadSheet.WorkbookPart.Workbook = wb; spreadSheet.WorkbookPart.Workbook.Save(); } } private void InsertToCell(uint rowIndex, string col, string value, SheetData sd) { var row = new Row() { RowIndex = rowIndex }; var cellReference = col + rowIndex; Cell newCell = new Cell { StyleIndex = (UInt32Value)1U, CellValue = new CellValue(value), DataType = CellValues.SharedString, CellReference = cellReference }; row.InsertBefore(newCell, null); sd.Append(row); }
任何人都可以帮助我解决此问题吗?
我正在尝试使用C#openXML插入Excel文件(.xlsx)单元格,但是当我打开创建的Excel文件时,需要通过显示以下错误来修复它,即已修复的记录:单元格信息...
StyleIndex
属性(ssml:s
属性)设置为1U
的值,而没有WorkbookStylesPart
包含可引用的单元格样式。其次,您将DataType
属性(ssml:t
属性)设置为CellValues.SharedString
(即"s"
)的值而没有SharedStringTablePart
。 CellValue
属性(ssml:v
元素)应该是SharedStringItem
(ssml:si
元素)内SharedStringTable
(ssml:sst
元素)的从零开始的索引,而不是"1C"
。