gpt4 book ai didi

c# - 如何在电子表格中包含 Open XML 电子表格 "uncollapse"单元格?

转载 作者:太空狗 更新时间:2023-10-30 00:35:23 24 4
gpt4 key购买 nike

我在服务器端使用 C# 处理 xslx Excel 文件。在电子表格中,假设总共有 15 列(单元格)。在单元格行中,缺少一些值。所以第一行是我的标题将正确包含 15 个单元格。但是我的数据行,一些单元格可能有空值,所以 Open XML 有一组“参差不齐”的单元格值。第 1 行将包含完整的 15 个单元格,第 2 行可能包含 13 个单元格,因为其中两个值是空的。什么!如何正确映射这些数据?它基本上将所有内容都向左移动,我的单元格值是错误的。我错过了什么?看起来它们在 Open XML 术语中被“折叠”了。

WorkbookPart workbookPart = spreadSheetDocument.WorkbookPart;
IEnumerable<Sheet> sheets = spreadSheetDocument.WorkbookPart.Workbook.GetFirstChild<Sheets>().Elements<Sheet>();
string relationshipId = sheets.First().Id.Value;
WorksheetPart worksheetPart = (WorksheetPart)spreadSheetDocument.WorkbookPart.GetPartById(relationshipId);
Worksheet workSheet = worksheetPart.Worksheet;
SheetData sheetData = workSheet.GetFirstChild<SheetData>();
IEnumerable<Row> rows = sheetData.Descendants<Row>();

澄清:这是提出这个问题的另一种方式。如果我想将 Excel 文件中的内容放入 DataTable 中怎么办?我希望所有数据列都正确排列。我怎样才能做到这一点?

这个问题比我在这里问得更好:reading Excel Open XML is ignoring blank cells

最佳答案

据我了解,您正在连续遍历单元格并假设您读取的第一个单元格在 A 列中,第二个单元格在 B 列中,依此类推?

我建议您(解析?)正则表达式中的列位置/引用

DocumentFormat.OpenXml.Spreadsheet.Cell currentcell
currentcell.CellReference

CellReference 以“A1”表示法为您提供单元格引用。提取列部分(“A、B、CC 等)

您必须对一行中的每个单元格执行此操作。然后,如果缺少列的单元格,只需填写一个占位符值。可能是 Null 还是 DbNull?

我不知道是否有另一种方法可以找出单元格属于哪一列。

关于c# - 如何在电子表格中包含 Open XML 电子表格 "uncollapse"单元格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4923359/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com