以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 【求助】 excel 时间列 导入到窗口表格式该如何处理 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=147771) |
-- 作者:chen_sheng -- 发布时间:2020/3/23 20:04:00 -- 【求助】 excel 时间列 导入到窗口表格式该如何处理 请教 excel 时间列 导入到窗口表格式该如何处理 目前excel 时间列 设置为1902/10/18 10:22:00 格式导入显示00:00 导入代码如下 导入数据除时间列 均正常 Dim dlg As New OpenFileDialog \'定义一个新的OpenFileDialog dlg.Filter= "Excel文件|*.xls|Excel2007文件|*.xlsx" \'设置筛选器 If dlg.ShowDialog = DialogResult.Ok Then \'如果用户单击了确定按钮 Dim Book As New XLS.Book(dlg.FileName) \'Dim Book As New XLS.Book("d:\\data\\1.xls") Dim Sheet As XLS.Sheet = Book.Sheets(0) Tables("制度标准二级_Table1").StopRedraw() Forms("加载窗口").Show \'注意以下数组中列名称的顺序,必须和Excel表中的列顺序一致 Dim nms() As String = {"频率","完成日期","备注"} \'注意下面的循环变量从1开始,而不是从0开始,因为Excel表的第一行是标题 For n As Integer = 1 To Sheet.Rows.Count -1 Dim r As Row = Tables("制度标准二级_Table1").AddNew() For m As Integer = 0 To nms.Length - 1 r(nms(m)) = Sheet(n,m).Value Next Next Tables("制度标准二级_Table1").ResumeRedraw() Tables("制度标准二级_Table1").Save end if [此贴子已经被作者于2020/3/23 20:17:09编辑过]
|
-- 作者:chen_sheng -- 发布时间:2020/3/23 20:17:00 -- 目前excel 时间列 设置为1902/10/18 10:22:00 格式导入显示00:00 |
-- 作者:chen_sheng -- 发布时间:2020/3/23 20:24:00 -- 避免沉贴 顶下 |
-- 作者:有点蓝 -- 发布时间:2020/3/23 20:44:00 -- "备注"列就是这个完成时间列?什么列类型?有没有相关代码控制 |
-- 作者:chen_sheng -- 发布时间:2020/3/24 13:04:00 -- 时间列是 【完成时间】 窗口打开代码 DataTables(e.Form.Name & "_table1").DataCols("完成时间").SetDateTimeFormat(DateTimeFormatEnum.Time) 导入代码 导入代码如下 导入数据除时间列 均正常 Dim dlg As New OpenFileDialog \'定义一个新的OpenFileDialog dlg.Filter= "Excel文件|*.xls|Excel2007文件|*.xlsx" \'设置筛选器 If dlg.ShowDialog = DialogResult.Ok Then \'如果用户单击了确定按钮 Dim Book As New XLS.Book(dlg.FileName) \'Dim Book As New XLS.Book("d:\\data\\1.xls") Dim Sheet As XLS.Sheet = Book.Sheets(0) Tables("制度标准二级_Table1").StopRedraw() Forms("加载窗口").Show \'注意以下数组中列名称的顺序,必须和Excel表中的列顺序一致 Dim nms() As String = {"频率","完成日期","完成时间","备注"} \'代码省略了些导入列 具体参考附件 \'注意下面的循环变量从1开始,而不是从0开始,因为Excel表的第一行是标题 For n As Integer = 1 To Sheet.Rows.Count -1 Dim r As Row = Tables("制度标准二级_Table1").AddNew() For m As Integer = 0 To nms.Length - 1 r(nms(m)) = Sheet(n,m).Value Next Next Tables("制度标准二级_Table1").ResumeRedraw() Tables("制度标准二级_Table1").Save end if 附件除【完成时间】列导入数据有问题 其他均无问题 数据库 SQL 数据类型 datetime
[此贴子已经被作者于2020/3/24 13:09:34编辑过]
|
-- 作者:有点蓝 -- 发布时间:2020/3/24 14:09:00 -- 要使用vba处理,参考:http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=65686&skin=0 |
-- 作者:chen_sheng -- 发布时间:2020/3/24 14:57:00 -- 请教代码 如何像这样 指定导入指定列呢 现在改了代码 有些列是没有必要导入的 导入会导致报错 \'注意以下数组中列名称的顺序,必须和Excel表中的列顺序一致 Dim nms() As String = {"频率","完成日期","完成时间","备注"} \'代码省略了些导入列 具体参考附件 这下面是根据情况改写的导入代码 麻烦指导一下 Dim dlg As New OpenFileDialog dlg.Filter= "所有文件|*.*|Excel2003文件|*.xls|Excel2007文件|*.xlsx" \'设置筛选器 If dlg.ShowDialog = DialogResult.Ok Then \'如果用户单击了确定按钮 MessageBox.Show("你选择的是:" & dlg.FileName,"提示") If MessageBox.Show("是否合并?","请确认!",MessageBoxButtons.OKCancel,MessageBoxIcon.Question) = DialogResult.OK Then DataTables("制度标准二级_Table1").StopRedraw Dim App As New MSExcel.Application try Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open(dlg.FileName) Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets(1) Dim Rg As MSExcel.Range = Ws.UsedRange Dim ary = rg.value For n As Integer = 2 To rg.Rows.Count Dim ro As Row = Tables("制度标准二级_Table1").AddNew For i As Integer = 0 To Tables("制度标准二级_Table1").Cols.Count - 1 ro(i) = ary(n,i+2) Next Next MessageBox.Show("导入成功!","恭喜!") catch ex As exception msgbox(ex.message) MessageBox.Show("导入失败!","请再试一遍!") finally DataTables("制度标准二级_Table1").ResumeRedraw app.quit End try Else Return End If End If
|
-- 作者:有点蓝 -- 发布时间:2020/3/24 15:36:00 -- Dim nms() As String = {"","频率","","完成日期","完成时间","备注"} 按顺序把不需要导入的列名置空,然后在代码里判断 For n As Integer = 2 To rg.Rows.Count Dim ro As Row = Tables("制度标准二级_Table1").AddNew For i As Integer = 0 To nms.Length - 1 if nms(m) > "" ro(nms(m)) = ary(n,i+2) end if Next |
-- 作者:chen_sheng -- 发布时间:2020/3/24 17:16:00 -- 问题1 .NET Framework 版本:4.0.30319.42000 Foxtable 版本:2020.3.11.8 错误所在事件: 详细错误信息: 无法设置列“稽核频率”。此值违反了此列的 MaxLength 限制。 问题二 索引超出了数组界限
[此贴子已经被作者于2020/3/24 17:21:01编辑过]
|
-- 作者:有点蓝 -- 发布时间:2020/3/24 17:25:00 -- 1、列长度不够:http://www.foxtable.com/webhelp/topics/0036.htm 2、说明列顺序、数组顺序和execl里的列名顺序不一致,或者个数不对
|