【问题标题】:Data to Table in Excel SheetExcel 工作表中的数据表
【发布时间】:2016-11-30 19:22:53
【问题描述】:

我的任务是解析一个 word 文档表单,并将其放入 Excel 工作表中。下面的代码很容易做到这一点。但我最近了解到我需要将这些数据放入 Excel 表格中,而不仅仅是工作表的单元格。

For row = 1 To theTable.Rows.Count   `until end of rows
                isHeaderOrNot = theTable.Cell(row, 0).Range.Text `if first field in row is a header
                If isHeaderOrNot.Contains("Section") Or isHeaderOrNot.Contains("Field") Then Continue For
                keyText = theTable.Cell(row, 2).Range.Text    `gets key text
                valueText = theTable.Cell(row, 3).Range.Text  `gets value text
                cleanStringKey = Regex.Replace(keyText, Chr(7), "") `clean strings
                cleanStringValue = Regex.Replace(valueText, Chr(7), "")


                xlWorkSheet.Cells(1, column) = cleanStringKey `puts key in row 1 and column n
                xlWorkSheet.Cells(2, column) = cleanStringValue `puts value in row 2 column n

                column = column + 1 `increment column
            Next

我想知道我是否必须完全更改我的代码才能使它成为一个表格...简而言之,从

我对 VB.net 完全陌生,所以如果可以的话,请尽可能简化所有内容。

【问题讨论】:

  • 我很确定您可以突出显示所有数据,转到插入 --> 表格。它应该自动格式化,你可以选择它是否有标题,看起来就像你一样。
  • 我确信他想要某种类型的自动化,因为他的示例表明他知道如何手动完成。如果您将变量调暗为 listobject 并将其设置为您的范围,它将使其成为表格。不知道这在 VB 中是如何进行的,但在 VBA 中相当简洁。
  • 是的,我正在寻找某种类型的自动化。不知道它是否有帮助,但是如果您单击单元格 A1 然后单击插入表格,它会创建一个表格,就像我希望它从所有数据中一样

标签: excel vb.net ms-word spreadsheet


【解决方案1】:

您可以使用WorkSheet.ListObjectAdd方法创建一个新的列表(表)。

示例

添加对Microsoft.Office.Interop.Excel的引用后,将此导入添加到表单中:

Imports XL = Microsoft.Office.Interop.Excel

然后使用这样的代码创建一个列表:

Dim Application = New XL.Application()
Application.Visible = True
Dim book = Application.Workbooks.Add()
Dim sheet = DirectCast(book.Worksheets(1), XL.Worksheet)
sheet.Cells(1, 1) = "Product"
sheet.Cells(1, 2) = "Price"
sheet.Cells(2, 1) = "Product 1"
sheet.Cells(2, 2) = "100"
sheet.Cells(3, 1) = "Product 2"
sheet.Cells(3, 2) = "200"
sheet.Cells(4, 1) = "Product 3"
sheet.Cells(4, 2) = "300"
Dim list = sheet.ListObjects.Add( _
                XL.XlListObjectSourceType.xlSrcRange, _
                sheet.Range(sheet.Cells(1, 1), sheet.Cells(4, 2)), _
                Type.Missing, XL.XlYesNoGuess.xlYes)

然后你会看到这样的结果:

【讨论】:

  • 如何去掉表格的自动着色?
  • @AhmedTaha 要想弄明白怎么做这样的事情,通常你可以在excel中录制一个宏,然后查看录制的宏的代码。
  • 感谢您的回复...我的意思是如何通过代码执行此操作。不是靠擅长自己
  • @AhmedTaha 在 Excel 中录制宏时,可以轻松查看录制宏的源代码。
  • @AhmedTaha 可以设置列表的TableStyle属性,例如list.TableStyle = "TableStyleLight9"。要完全删除样式,请将其设置为空字符串。
猜你喜欢
  • 2016-05-26
  • 1970-01-01
  • 2019-03-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多