OpenXml 和奇怪的行为

奥列格·什

我有以下代码:

            for (int r = 0; r < rows.Count(); r++)
            {
                var cells = rows[r].Elements<Cell>().ToList();
                for (int c = 0; c < cells.Count(); c++)
                {
                    SharedStringTablePart shareStringPart = spreadsheetDocument.WorkbookPart.GetPartsOfType<SharedStringTablePart>().First();
                    SharedStringItem[] items = shareStringPart.SharedStringTable.Elements<SharedStringItem>().ToArray();
                    int v = int.Parse(cells[c].CellValue.Text);
                    text = items[v].InnerText;
                }

以及以下excel文件:

在此处输入图片说明

但是这段代码崩溃了

我调试它并查看第 2 行的每个单元格的CellValue(我的v变量)。

cell[0] = 33(它得到正确的值PQ-10387

单元格1 =22

单元格[2] = 198

cell[3] =310和这个值是cell相同的值!我的代码有什么问题?

奥列格·什

发现,当单元格存储一个数字时,则CellValue具有单元格的值并且DataType为空,否则DataType具有值并CellValue存储索引。所以,这段代码工作正常:

            for (int r = 0; r < rows.Count(); r++)
            {
                var cells = rows[r].Elements<Cell>().ToList();
                for (int c = 0; c < cells.Count(); c++)
                {
                    SharedStringTablePart shareStringPart = spreadsheetDocument.WorkbookPart.GetPartsOfType<SharedStringTablePart>().First();
                    SharedStringItem[] items = shareStringPart.SharedStringTable.Elements<SharedStringItem>().ToArray();
                    if (cells[c].DataType != null)
                    {
                        if (cells[c].CellValue != null)
                        {
                            int v = int.Parse(cells[c].CellValue.Text);
                            text = items[v].InnerText;
                        }
                    }
                    else
                        text = cells[c].CellValue?.Text;

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

OpenXml,Word和C#

来自分类Dev

OpenXml和无法创建互斥体

来自分类Dev

OpenXml和无法创建互斥锁

来自分类Dev

||奇怪的Ruby行为 和 &&

来自分类Dev

加入和的奇怪行为

来自分类Dev

使用OpenXML替换DOCX文件中的文本-奇怪的内容

来自分类Dev

DateTime和DateTimeZone的奇怪行为

来自分类Dev

Camera和SurfaceView的奇怪行为

来自分类Dev

时区和SimpleDateFormat奇怪的行为

来自分类Dev

$ .clone()和$ .data()奇怪的行为

来自分类Dev

查找和du的奇怪行为

来自分类Dev

systimestamp和sysdate的奇怪行为

来自分类Dev

Camera和SurfaceView的奇怪行为

来自分类Dev

$ .clone()和$ .data()奇怪的行为

来自分类Dev

strpos和&Oslash;的奇怪行为

来自分类Dev

奇怪的printf和scanf行为

来自分类Dev

gluPerspective和gluLookAt的奇怪行为

来自分类Dev

ASLR 和 VirtualAlloc 的奇怪行为

来自分类Dev

TextView 和 ListView 的奇怪行为

来自分类Dev

OpenXML:XML和Excel工作表具有不同的值

来自分类Dev

使用OPENROWSET和OPENXML将XML导入SQL Server

来自分类Dev

OpenXML:XML和Excel工作表具有不同的值

来自分类Dev

使用OpenXML for Word搜索和添加注释

来自分类Dev

SQL Server 2014:使用OpenXML和BulkColumn从XML提取数据

来自分类Dev

OpenXml ChangeDocumentType

来自分类Dev

使用OpenXML

来自分类Dev

momentjs-奇怪的行为与startOf和endOf

来自分类Dev

Python:和/或运算符奇怪的行为

来自分类Dev

C ++ float和int除法奇怪的行为