关于导入和导出EXCEL的问题

xunis 2010-04-28 09:15:02
导入代码:

Dim sConnectionString As String = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" + PATH + ";" & _
"Extended Properties=Excel 8.0;"
'建立EXCEL的连接
Dim objConn As New OleDbConnection(sConnectionString)
objConn.Open()
Dim objCmdSelect As OleDbCommand = New OleDbCommand("SELECT * FROM [Sheet1$]", objConn)
Dim objAdapter As OleDbDataAdapter = New OleDbDataAdapter()
objAdapter.SelectCommand = objCmdSelect
Dim objDataset As DataSet = New DataSet()

objAdapter.Fill(objDataset, "XLData")
Dim dt As DataTable = objDataset.Tables(0)


导出代码:

Dim style As String = "<style> .text { mso-number-format:\@; } </script> "
Response.ClearContent()
Response.AddHeader("content-disposition", "attachment; filename=ExportExcel.xls")
Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312")
Response.ContentType = "application/excel"
Dim sw As StringWriter = New StringWriter()
Dim htw As HtmlTextWriter = New HtmlTextWriter(sw)
Me.GridView1.AllowPaging = False
BindGridView()
Me.PanelResult.RenderControl(htw)
Response.Write(style)
Response.Write(sw.ToString().Replace("display: none", "display: "))
Response.End()

从EXCEL导入数据,再导出,再导入刚才导出的EXCEL里的内容,就会报错。
objConn.Open()  外部表不是预期的格式。


哪位遇到过这种情况,或者给我指出错误,谢谢了!
...全文
234 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
czmyouxi 2011-04-25
  • 打赏
  • 举报
回复
回复才能看,我晕
xlh0053 2010-04-28
  • 打赏
  • 举报
回复
GOOGLE,每天回帖即可获得10分可用分!
honkerhero 2010-04-28
  • 打赏
  • 举报
回复
去devexpress源代码里扒个XlsStream出来,往里写流,发给客户端
qiuqingpo 2010-04-28
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 xunis 的回复:]

使用导出的方法能不能直接导成EXCEL的?
qiuqingpo所说的 另外保存成EXCEL是可以继续导入的 需要改个工作薄的名字
[/Quote]
不要改的.直接另存为原来的名字就行了.
是要用组件的
http://www.google.com.hk/search?hl=zh-CN&source=hp&q=%E5%A4%96%E9%83%A8%E8%A1%A8%E4%B8%8D%E6%98%AF%E9%A2%84%E6%9C%9F%E7%9A%84%E6%A0%BC%E5%BC%8F%E3%80%82&meta=&aq=f&aqi=&aql=&oq=&gs_rfai=
我也是前天从google里找的.希望能帮助你!
xunis 2010-04-28
  • 打赏
  • 举报
回复
没人回答.....
xunis 2010-04-28
  • 打赏
  • 举报
回复
使用导出的方法能不能直接导成EXCEL的?
qiuqingpo所说的 另外保存成EXCEL是可以继续导入的 需要改个工作薄的名字
xunis 2010-04-28
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 qiuqingpo 的回复:]
是的.确实要是正常的excel你用记事本打开时全是乱码.可你导出的全是文字.
遇到这.我用的是最偷懒的方法.用excel打开导出的excel.另存为excel就行了.
还有就是可以用excel组件.这样导出的就不会出现这样的问题了!
[/Quote]

你说的excel组建就是 引用.dll了?是这样吗?
凤凰涅檠 2010-04-28
  • 打赏
  • 举报
回复
GOOGLE,每天回帖即可获得10分可用分!
qiuqingpo 2010-04-28
  • 打赏
  • 举报
回复
是的.确实要是正常的excel你用记事本打开时全是乱码.可你导出的全是文字.
遇到这.我用的是最偷懒的方法.用excel打开导出的excel.另存为excel就行了.
还有就是可以用excel组件.这样导出的就不会出现这样的问题了!
xunis 2010-04-28
  • 打赏
  • 举报
回复
求解决!
xunis 2010-04-28
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 net_lover 的回复:]
这种导出的方法本质上是html。
[/Quote]

哦 导出之后和自己建的EXCEL有区别 只有有数据的地方有隔线 其余都空白 那有什么方法解决这个问题吗?

通过读数据写单元格能实现 可是那样必须导入.dll 考虑到.dll版本的问题 所以这个方法不能用 还请教下有其余方法处理么?谢谢了!
qq497525725 2010-04-28
  • 打赏
  • 举报
回复
不会VB.NET 顶一下.
孟子E章 2010-04-28
  • 打赏
  • 举报
回复
这种导出的方法本质上是html。

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧