Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/15.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
使用vb.net将datagrid另存为excel 2003或excel 2007_Vb.net_Excel - Fatal编程技术网

使用vb.net将datagrid另存为excel 2003或excel 2007

使用vb.net将datagrid另存为excel 2003或excel 2007,vb.net,excel,Vb.net,Excel,我可以使用vb.net代码保存datagrid: saveFileDialog.Filter = "Excel2007 (*.xlsx)|*.xlsx|All files (*.*)|*.*" 我希望为用户提供以Excel2003或Excel2007格式保存的选项。我需要在代码中做哪些更改,引用和导入又如何?感谢…除了适当的扩展,在调用SaveAs()时还必须提供Excel版本。: 您可以找到XlFileFormat的值列表。虽然此列表中的名称不太具有描述性。这

我可以使用vb.net代码保存datagrid:

                saveFileDialog.Filter = "Excel2007 (*.xlsx)|*.xlsx|All files (*.*)|*.*"

我希望为用户提供以Excel2003或Excel2007格式保存的选项。我需要在代码中做哪些更改,引用和导入又如何?感谢…

除了适当的扩展,在调用
SaveAs()时还必须提供Excel版本。

您可以找到
XlFileFormat
的值列表。虽然此列表中的名称不太具有描述性。这是你的翻译:

  • 2003->
    Excel.XlFileFormat.xlExcel8
    (如上所述)
  • 2007->
    Excel.XlFileFormat.xlOpenXMLWorkbook
    (如上所述)

注意:请记住,上面的代码依赖于
officeinterop

好的,excel2003是“.xls”…我将其更改为.xls。我可以打开该文件,但收到一条消息“您试图打开的文件,'student.xls'的格式与文件扩展名指定的格式不同。”。这意味着它没有保存在excel 2003中,对吗???我怀疑是这样的,是的。谢谢…SaveAs()在我的代码中是这样的:如果saveFileDialog.ShowDialog()=DialogResult.OK,那么xlsheet.SaveAs(saveFileDialog.FileName)MsgBox(“您的文件已保存”)结束If@user2444712很抱歉,我意识到了我的错误:您不是在保存工作簿,而是在保存工作表。上面的选项适用于工作簿(整个文件),工作表只是其中一个选项卡。因此,您使用的是Office Interop,但使用的不完全正确(无法将工作表保存到旧版本的工作簿中)。请更正代码,以便执行正确的保存方式:将XLWORKEY替换为相应的工作簿名称(我想是XLWORKEY…)。
curBook.SaveAs("full path with adequate extension", Excel.XlFileFormat.xlWorkbookDefault)