以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 关于导出表问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=160022) |
-- 作者:fvcfox -- 发布时间:2021/1/18 8:57:00 -- 关于导出表问题 Dim dlg As New SaveFileDialog \'定义一个新的SaveFileDialog dlg.Filter= "Excel文件|*.xls" \'设置筛选器 dlg.FileName = "人员信息表" & Format(Date.Now, "yyyyMMdd") & ".xls" If dlg.ShowDialog = DialogResult.Ok Then \'如果用户单击了确定按钮 Dim ex As New Exporter ex.SourceTableName = "人员信息" \'指定导出表 ex.FilePath = dlg.FileName \'指定目标文件 ex.Format = "Excel" \'导出格式为Excel ex.Fields = "编号,姓名,部门" \'指定导出字段 ex.Export() \'开始导出 messagebox.show("已完成EXCEL表格的导出.") End If 通过上述代码,导出的EXCEL表格的指定字段记录,本来是数值型的,导出后成字符型了,怎样导出的数据类型与狐表里表字段类型一样
|
-- 作者:有点蓝 -- 发布时间:2021/1/18 9:07:00 -- 我测试没有问题,数值列导出execl也是数值型。字符型是靠左对齐的,数值型是靠右对齐的 |
-- 作者:fvcfox -- 发布时间:2021/1/18 9:29:00 -- 将电子表格的数值型已设成字符型,但在导入时导不进1-12的那些记录 [此贴子已经被作者于2021/1/18 9:28:51编辑过]
|
-- 作者:有点蓝 -- 发布时间:2021/1/18 9:32:00 -- 这个列肯定不是数值列,而是字符型列。数据导出看列类型,字符型列数据导出肯定是字符型的 |
-- 作者:fvcfox -- 发布时间:2021/1/18 10:43:00 -- 现在我是想在电子表格录入数据后,再导入出问题,在电子表格的1-12我已改成文本了,为什么不能导入,但如果录入非数字的中文字是可以导入的 |
-- 作者:有点蓝 -- 发布时间:2021/1/18 10:55:00 -- 对于同一列数据既有字符又有数值的,只能导入其中一种,这个是是execl组件本身的问题 |
-- 作者:fvcfox -- 发布时间:2021/1/20 0:39:00 -- 请问老师,如下的红色字中的str变量怎样使其适合在有“”的表示方法 Dim Result As DialogResult Result = MessageBox.Show("▲导入时会删除当前采集表的所有记录数据???", "特别注意", MessageBoxButtons.YesNo,MessageBoxIcon.Question) If Result = DialogResult.Yes Then Dim dlg As New OpenFileDialog \'定义一个新的OpenFileDialog dlg.Filter= "EXCEL文件|*.xls" \'设置筛选器 If dlg.ShowDialog = DialogResult.Ok Then \'如果用户单击了确定按钮 Dim Book As New XLS.Book(dlg.FileName) Dim Sheet As XLS.Sheet = Book.Sheets(0) Tables("采集表").StopRedraw() \'注意以下数组中列名称的顺序,必须和Excel表中的列顺序一致 Dim str As String Tables("考核内容").Sort="考核ID DESC" For Each r As Row In Tables("考核内容").Rows str= ","& r("考核内容") & str Next Dim nms() As String = {"编号","部门","姓名","类别" & str} \'注意下面的循环变量从1开始,而不是从0开始,因为Excel表的第一行是标题 \'DataTables("采集表").DataRows.Clear For n As Integer = 1 To Sheet.Rows.Count -1 Dim r As Row = Tables("采集表").AddNew() For m As Integer = 0 To nms.Length - 1 r(nms(m)) = Sheet(n,m).Value Next Next Tables("采集表").ResumeRedraw() End If End If
|
-- 作者:有点蓝 -- 发布时间:2021/1/20 8:43:00 -- Dim str As String Tables("考核内容").Sort="考核ID DESC" dim lst as new List(of string) lst.addrange({"编号","部门","姓名","类别"}) For Each r As Row In Tables("考核内容").Rows lst.add(r("考核内容")) Next \'注意下面的循环变量从1开始,而不是从0开始,因为Excel表的第一行是标题 \'DataTables("采集表").DataRows.Clear For n As Integer = 1 To Sheet.Rows.Count -1 Dim r As Row = Tables("采集表").AddNew() For m As Integer = 0 To lst.count - 1 r(lst(m)) = Sheet(n,m).Value Next Next |