Excel OpenXML:损坏的xlsx文件
我试图将两个大小相同的列表框的内容导出为excel文件:两个标题,第一列包含LB1,第二列包含LB2。我试图为OpenXML提供一个代码,并设法保存了一个.xlsx文件,但当我打开它时,Excel会询问我是否要恢复该文件,如果是,该文件从未成功恢复。遵循我正在使用的代码: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
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
你能告诉我哪里做错了吗?提前谢谢大家都会回答我的。致以最诚挚的问候。你犯了很多人都犯过的错误。你试图在一个上帝身上做每件事,当它不起作用时,你不知道问题在哪里。这就是为什么你分步构建解决方案,然后你就知道问题出在哪一步,因为这就是整个问题的症结所在。您应该首先尝试保存一个空文件。如果可行,请尝试填充一个单元格。如果可行,请尝试一列和/或一行。等事情发生时,你知道问题出在你刚刚做的小改变上。这就是软件开发的工作方式。