以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  窗口内导入按钮出错  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=89217)

--  作者:zj6430
--  发布时间:2016/8/17 13:47:00
--  窗口内导入按钮出错

在编写一个自己岗位使用的小窗口中出现以下问题

在窗口界面加入一个按钮,设置为导入,代码如下:

Dim dlg As New OpenFileDialog \'定义一个新的OpenFileDialog
dlg.Filter= "Excel文件|*.xls" \'设置筛选器
If dlg.ShowDialog = DialogResult.Ok Then \'如果用户单击了确定按钮
    Dim mg As New Merger
    mg.SourcePath = dlg.FileName
    mg.SourceTableName = "组织架构及负责人"
    mg.DataTableName = "组织架构及负责人"
    mg.Merge()
End If

 

 

狐表内部表的《组织架构及负责人》只有所属公司,一级部门,二级部门,评估人,分管领导五列,外部excel也同样这几列,但是选择文件导入出现以下提示

不可识别的数据库格式 \'C:\\Users\\Administrator\\Desktop\\组织架构及负责人.xls\'。

怎么解决?


--  作者:大红袍
--  发布时间:2016/8/17 14:21:00
--  

Dim dlg As New OpenFileDialog \'定义一个新的OpenFileDialog
dlg.Filter= "Excel文件|*.xls" \'设置筛选器
If dlg.ShowDialog = DialogResult.Ok Then \'如果用户单击了确定按钮
    Dim mg As New Merger

    mg.Format = "Excel"
    mg.SourcePath = dlg.FileName
    mg.SourceTableName = "组织架构及负责人$"
    mg.DataTableName = "组织架构及负责人"
    mg.Merge()
End If


--  作者:zj6430
--  发布时间:2016/8/17 16:35:00
--  

\'组织架构及负责人$\' 不是一个有效名称。请确认它不包含无效的字符或标点,且名称不太长。

出现以下名称,我的导入文件需放在系统文件夹中吗?


--  作者:大红袍
--  发布时间:2016/8/17 16:37:00
--  
你那个excel文件里面的sheet名字叫什么?
--  作者:zj6430
--  发布时间:2016/8/17 16:45:00
--  

sheet1

 


--  作者:大红袍
--  发布时间:2016/8/17 16:46:00
--  

那就写成

 

mg.SourceTableName = "sheet1$"


--  作者:zj6430
--  发布时间:2016/8/17 16:46:00
--  

用导出文件直接做的,把数据换了

导出命令是下面

Dim dt As Table = Tables("组织架构及负责人")
Dim nms() As String = {"所属公司","一级部门","二级部门","绩效评估人","分管领导"} \'要导出的列名
Dim caps() As String = {"所属公司","一级部门","二级部门","绩效评估人","分管领导"} \'对应的列标题
Dim szs() As Integer = {98,98,98,98,98} \'对应的列宽
Dim Book As New XLS.Book \'定义一个Excel工作簿
Dim Sheet As XLS.Sheet = Book.Sheets(0) \'引用工作簿的第一个工作表
For c As Integer = 0 To nms.length -1
    Sheet(0, c).Value = caps(c) \'指定列标题
    Sheet.Cols(c).Width = szs(c) \'指定列宽
   
Next
For r As Integer = 0 To dt.Rows.Count - 1 \'填入数据
    For c As Integer = 0 To nms.length -1
        Sheet(r +1, c).Value = dt.rows(r)(nms(c))
    Next
Next
Dim dlg As New SaveFileDialog \'定义一个新的SaveFileDialog
dlg.Filter= "Excel文件|*.xls" \'设置筛选器
If dlg.ShowDialog = DialogResult.Ok Then
    Book.Save(dlg.FileName)
    Dim Proc As New Process
    Proc.File = dlg.FileName
    Proc.Start()


--  作者:大红袍
--  发布时间:2016/8/17 16:47:00
--  
看6楼。
--  作者:zj6430
--  发布时间:2016/8/18 11:37:00
--  
解决了,谢谢
--  作者:yao3979
--  发布时间:2017/11/4 15:56:00
--  
我也出现同样的问题,求大神解决