以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  将字符列转换为数字列  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=57864)

--  作者:hubin998
--  发布时间:2014/10/6 11:20:00
--  将字符列转换为数字列
老师好!我将原来的数据库导入,发现很多数字列被狐表自动转换为字符列,造成无法统计
有什么好办法,批量修改这些列的属性,我试过直接修改表属性,失败,麻烦了,谢谢!(数据量太大)

--  作者:有点甜
--  发布时间:2014/10/6 11:29:00
--  

 呃,你导入的是excel表格?如果你那一列为全数字的话,不可能转成字符列的。

 

 请做例子发上看看,或者把数据弄上来看看。


--  作者:程兴刚
--  发布时间:2014/10/6 12:52:00
--  
备份Excel文件,删除标题行(前几行不能有字符型文字),重新导入!
--  作者:程兴刚
--  发布时间:2014/10/6 12:55:00
--  
对了,狐表项目文件已保存了的话,里面的表仍需手工处理!
--  作者:hubin998
--  发布时间:2014/10/6 14:27:00
--  
谢谢!我还是希望在狐表中处理,我试过在电子表格中处理,然后倒入,但是导入导入都是空白的
--  作者:有点甜
--  发布时间:2014/10/6 14:29:00
--  
 数据发上来
--  作者:程兴刚
--  发布时间:2014/10/6 14:31:00
--  
搜一下,我发过帖子,按条件导入,判断其为非数字时,跃过导入下一行!
--  作者:hubin998
--  发布时间:2014/10/6 14:37:00
--  
大家好!根据一天的实验,暂时发现,先导出电子表格,删除数据,用一些无效的文本和数字填写在第一行(不包括标题行),用狐表导入(我发现最快的生成表的方法,特别是对于字段多的表格),删除无效数据,直接将数据源的数据复制到新表,文本格式的数字自动转换为数字格式的数字,狐表真的强大。

不过我还是恳请哪位大侠教我如何用代码实现

--  作者:有点甜
--  发布时间:2014/10/6 14:40:00
--  

 不理解你什么意思,直接导入。

 

 如果要修改表结构,参考http://www.foxtable.com/help/topics/2122.htm

 


--  作者:kylin
--  发布时间:2014/10/7 8:36:00
--  

逐个单元格导入,保证不会有奇怪的现象发生,以下为核心代码,供参考:

Dim nms() As String =  {"FillDate","AcceptNo","Name","Quantity","Weight","Price","Cost","Remark"}

Dim dlg As New OpenFileDialog \'定义一个新的OpenFileDialog
dlg.Filter= "Excel文件|*.xls;*.xlsx" \'设置筛选器
If dlg.ShowDialog = DialogResult.Ok Then \'如果用户单击了确定按钮
         
    Dim Book As New XLS.Book(dlg.FileName)
    Dim Sheet As XLS.Sheet = Book.Sheets(0)
   
    DataTables(lsb).DataRows.Clear
   
    Dim r As Row
    Tables(lsb).AddNew(Sheet.Rows.Count-1)
   
    For m As Integer = 0 To nms.Length - 1
        For k As Integer = 1 To Sheet.Rows.Count -1
            r = Tables(lsb).Rows(k-1)
            r(nms(m)) = Sheet(k,m).Value
        Next
    Next
End If