Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel OpenXML:损坏的xlsx文件_Excel_Vb.net_Openxml - Fatal编程技术网

Excel OpenXML:损坏的xlsx文件

Excel OpenXML:损坏的xlsx文件,excel,vb.net,openxml,Excel,Vb.net,Openxml,我试图将两个大小相同的列表框的内容导出为excel文件:两个标题,第一列包含LB1,第二列包含LB2。我试图为OpenXML提供一个代码,并设法保存了一个.xlsx文件,但当我打开它时,Excel会询问我是否要恢复该文件,如果是,该文件从未成功恢复。遵循我正在使用的代码: If SaveFileDialog1.ShowDialog() = DialogResult.OK Then Using spreadsheetDocument As SpreadsheetDocume

我试图将两个大小相同的列表框的内容导出为excel文件:两个标题,第一列包含LB1,第二列包含LB2。我试图为OpenXML提供一个代码,并设法保存了一个.xlsx文件,但当我打开它时,Excel会询问我是否要恢复该文件,如果是,该文件从未成功恢复。遵循我正在使用的代码:

If SaveFileDialog1.ShowDialog() = DialogResult.OK Then
            Using spreadsheetDocument As SpreadsheetDocument = SpreadsheetDocument.Create(SaveFileDialog1.FileName, SpreadsheetDocumentType.Workbook, False)
                Dim workbookpart As WorkbookPart = spreadsheetDocument.AddWorkbookPart
                workbookpart.Workbook = New Workbook
                Dim worksheetPart As WorksheetPart = workbookpart.AddNewPart(Of WorksheetPart)()
                worksheetPart.Worksheet = New Worksheet(New SheetData())
                Dim sheets As Sheets = spreadsheetDocument.WorkbookPart.Workbook.AppendChild(Of Sheets)(New Sheets())
                Dim sheet As Sheet = New Sheet
                sheet.Id = spreadsheetDocument.WorkbookPart.GetIdOfPart(worksheetPart)
                sheet.SheetId = 1
                sheet.Name = "HRR"
                sheets.Append(sheet)
                Dim HeaderString As String = "Time [s], HRR [kW]"
                Dim HeaderWords As String() = HeaderString.Split(New Char() {","c})
                Dim Row = New Row()
                For Each Header In HeaderWords
                    Dim cell = New Cell()
                    cell.DataType = CellValues.String
                    cell.CellValue = New CellValue(Trim(Header))
                    Row.AppendChild(cell)
                Next
                spreadsheetDocument.WorkbookPart.WorksheetParts.First().Worksheet.First().AppendChild(Row)
                Dim DataString As String = "1,2"
                Dim DataWords As String() = DataString.Split(New Char() {","c})
                For Each DataPart In DataWords
                    Dim newRow = New Row()
                    For Each col As String In Form3.ListBox1.Items
                        Dim cell = New Cell()
                        cell.DataType = CellValues.String
                        cell.CellValue = New CellValue(DataPart.ToString())
                        newRow.AppendChild(cell)
                    Next
                    For Each col As String In Form3.ListBox2.Items
                        Dim cell = New Cell()
                        cell.DataType = CellValues.String
                        cell.CellValue = New CellValue(DataPart.ToString())
                        newRow.AppendChild(cell)
                    Next
                    spreadsheetDocument.WorkbookPart.WorksheetParts.First().Worksheet.First().AppendChild(newRow)
                Next
                workbookpart.Workbook.Save()
                spreadsheetDocument.Close()
            End Using
        End If

你能告诉我哪里做错了吗?提前谢谢大家都会回答我的。致以最诚挚的问候。

你犯了很多人都犯过的错误。你试图在一个上帝身上做每件事,当它不起作用时,你不知道问题在哪里。这就是为什么你分步构建解决方案,然后你就知道问题出在哪一步,因为这就是整个问题的症结所在。您应该首先尝试保存一个空文件。如果可行,请尝试填充一个单元格。如果可行,请尝试一列和/或一行。等事情发生时,你知道问题出在你刚刚做的小改变上。这就是软件开发的工作方式。