以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- Import方式导入excel表,怎么限制非文本内容的空白列导入呢? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=173210) |
-- 作者:cnsjroom -- 发布时间:2021/11/19 0:17:00 -- Import方式导入excel表,怎么限制非文本内容的空白列导入呢? Import方式导入excel表,怎么限制非文本内容的空白列导入呢? 使用过程中遇到当前excel表中只有10列 ,结果导入的时候会提示不能超过225?甚至获取到的第一行列名都大于225的 实际列只有10列,怎么增加判断呢? Dim dlg As New OpenFileDialog \'定义一个新的OpenFileDialog dlg.Filter= "Excel97文件|*.xls|Excel2007文件|*.xlsx" \'设置筛选器 If dlg.ShowDialog = DialogResult.Ok Then \'如果用户单击了确定按钮 Dim ip As New Importer ip.SourcePath = dlg.FileName \'指定数据文件\\ Dim Str1 As String = FileSys.GetName(dlg.FileName) \'从文件路劲中获取文件名称 Dim book As new XLS.Book(dlg.FileName) Dim c6 As WinForm.ComboBox = e.Form.Controls("ComboBox6") Dim a1 As Integer = c6.Value \' MessageBox.Show(book.Sheets(0).name) ip.SourceTableName = book.Sheets(a1).name \'指定要导入的表 ip.NewTableName =book.Sheets(a1).name \'s \'导入后的表名 If Str1 > "" AndAlso Str1.Contains("xlsx") Then \' MessageBox.Show("xlsx文件") ip.Format="Excel2007" Else If Str1 > "" AndAlso Str1.Contains("xls") Then \' MessageBox.Show("xls文件") ip.Format="Excel" End If \' MessageBox.Show("1") ip.Import() End If
|
-- 作者:有点蓝 -- 发布时间:2021/11/19 8:20:00 -- Importer没有办法判断,这个是execl文件本身的问题,看起来这些列没有内容,实际上都用到了,应该是生成这个文件的程序导出功能有问题 可以根据第一行标题手工生成表格:http://www.foxtable.com/webhelp/topics/2122.htm、http://www.foxtable.com/webhelp/topics/0679.htm
|
-- 作者:cnsjroom -- 发布时间:2021/11/19 15:15:00 -- 回复:(有点蓝)Importer没有办法判断,这个是execl文... 如此这样 老师有没有什么办法解决呢? 在选择需要导入的数据表名之后的代码 If e.sender.value = "" Then Return End If Dim r As Row Dim dc As Col Dim dt As Table = Tables(Vars("btname11")) Dim t As Table = e.Form.Controls("Table1").Table Dim i As Integer Dim nms As String Dim nms1 As String Dim cnt As Integer = DataTables(Vars("btname11")).DataCols.Count Dim Book As New XLS.Book(e.Form.Controls("TextBox1").value) Dim Sheet As XLS.Sheet = Book.Sheets(e.sender.value) t.StopRedraw t.DataTable.DataRows.clear Dim zd1 As New Dictionary(Of Integer, String) For i = 0 To Sheet.Cols.count - 1 r = t.AddNew() r("来源字段") = Sheet(0,i).Value r("来源列数")=i zd1.Add(r("来源列数"),r("来源字段")) Next For Each dc In dt.cols nms = nms & "|" & dc.name t.cols("接收字段").ComboList = nms Next For i1 As Integer = 0 To cnt - 1 nms1 = nms1 & "|" & i1 t.cols("接收列数").ComboList =nms1 & "|" Next t.cols("是否唯一").ComboList ="是" & "|" & "不是" t.ResumeRedraw [此贴子已经被作者于2021/11/19 15:16:35编辑过]
|
-- 作者:有点蓝 -- 发布时间:2021/11/19 15:20:00 -- For i = 0 To Sheet.Cols.count - 1 if Sheet(0,i).text > "" r = t.AddNew() r("来源字段") = Sheet(0,i).Value r("来源列数")=i zd1.Add(r("来源列数"),r("来源字段")) end if Next
|