以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  想合并50个电子表或拆分为50个电子表  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=82632)

--  作者:zhangchi96
--  发布时间:2016/3/21 22:49:00
--  想合并50个电子表或拆分为50个电子表

由于要经常把50个同样格式的电子表合并为一个电子表就想用狐表来解决。

1、考虑用导入,因为事先不指导电子表的每列的列名,这样导入后就得到一个新表,但是导入表无法一下子若干个表。

2、考虑用合并,合并可以一下子合并若干个同格式的表,但事先要建立一个内部表,还要定列名,合并还要确定导入的对应的列名,但要合并的电子表的列名不是一成不变的。

 

另外:如果一个表中含有若干个单位的数据,其中一个列中的数据是各单位的名称,先导入,然后根据单位名导出为若干个表?

 

敬请老师指点迷津!


--  作者:大红袍
--  发布时间:2016/3/21 23:26:00
--  

没理解你的意思。导入参考 http://www.foxtable.com/help/topics/0684.htm

 

如果要编码合并数据,参考 http://www.foxtable.com/help/topics/2334.htm

 


--  作者:zhangchi96
--  发布时间:2016/3/22 10:25:00
--  
有一个电子表,格式大致如下:

序号    单位    姓名    性别   年龄   学历  地址
1
2
3
。。。

把这个电子表发到50个单位填写,得到50张电子表,现在想把这些表合并为一个电子表,想用狐表来实现。
   
   反之:就是把合并的表,按照单位名称,拆分为50个电子表

--  作者:大红袍
--  发布时间:2016/3/22 10:29:00
--  

1、合并 http://www.foxtable.com/help/topics/0685.htm

 

2、拆分 http://foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=81808&skin=0

 


--  作者:zhangchi96
--  发布时间:2016/4/20 10:50:00
--  
想请老师帮我解决一个小的问题:如何读取电子表的列名

  1、我在一个窗体里建立了若干个文本框:文本01、文本02、文本03、。。。。。
  
  2、有一个excel电子表:职工总表,列名称在第2行或者第3行(暂时定第2行)

  3、想把excel表的第2行的列的内容一次读取放到文本框里

请老师指点该怎么来写代码! 

--  作者:大红袍
--  发布时间:2016/4/20 10:54:00
--  
Dim Book As New XLS.Book("d:\\test.xls")
Dim Sheet As XLS.Sheet = Book.Sheets(0)
For i As Integer = 1 To sheet.Cols.count
    msgbox(i & " " & sheet(1, 1).Text)
Next

--  作者:zhangchi96
--  发布时间:2016/4/21 9:10:00
--  
Dim lm1 As Winform.TextBox = Forms("导入电子表窗体").Controls("列名01")
Dim lm2 As Winform.TextBox = Forms("导入电子表窗体").Controls("列名02")
.
.
.   (省略)
Dim lm24 As Winform.TextBox = Forms("导入电子表窗体").Controls("列名24")

 Dim 文本内容 As String 
Dim Book As New XLS.Book("d:\\事业单位编制人员名册.xls")
Dim Sheet As XLS.Sheet = Book.Sheets(0)
For i As Integer = 1 To sheet.Cols.count
    msgbox(i & " " & sheet(1, i).Text) 
    文本内容 = "lm" & i & ".text"
    文本内容 =  sheet(1, i).Text
    If len(sheet(1, i + 1).Text) = 0 Then
        Return
    End If
Next

我知道是红色部分错了,但不知道怎么来表达,烦请老师指点!

--  作者:大红袍
--  发布时间:2016/4/21 9:14:00
--  
e.form.Controls("lm" & i).Text = sheet(1, i-1).Text
--  作者:zhangchi96
--  发布时间:2016/4/21 9:24:00
--  

特别感谢大红袍老师,汇报一下,有个小小的修改


Dim lm1 As Winform.TextBox = Forms("导入电子表窗体").Controls("列名1")

。。。(省略,一直到列名24)

Dim 列名行 As WinForm.NumericComboBox = e.Form.Controls("列名行")

\' -- 获得电子表的列名,填写到文本框内

Dim 总表 As New XLS.Book("d:\\事业单位编制人员名册.xls")

Dim Sheet01 As XLS.Sheet = 总表.Sheets(0)

For i As Integer = 1 To sheet01.Cols.count

    e.form.Controls("列名" & i).Text = sheet01(val(列名行.text) - 1 , i-1).Text 

                       ‘红色部分不是写成lm,因为这里是控件名,不知我的解释对不对

    If len(sheet01(1, i + 1).Text) = 0 Then

        Return

    End If

Next

---再后面是合并数据的程序


这里有个新的问题,蓝色字体Return,用错了,我的本意是跳出来的,没想到这样一来,在next 后面再写任何代码都不会执行了。

请老师指点迷津.


[此贴子已经被作者于2016/4/22 20:27:48编辑过]