以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  批量导入一个工作表下面的多个工作薄  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=172570)

--  作者:cd_tdh
--  发布时间:2021/10/20 9:01:00
--  批量导入一个工作表下面的多个工作薄

老师,请教一下,怎么导入一个工作表下的多个工作薄,需要导入的工作薄名称都是数字名称,如下:

 


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20211020085842.jpg
图片点击可在新窗口打开查看

Dim dlg As New OpenFileDialog
dlg.Filter= "Excel 97-2003文件(*.xls)|*.xls|Excel 2007文件(*.xlsx)|*.xlsx"
If dlg.ShowDialog = DialogResult.Ok Then
    Dim nm As String = FileSys.GetName(dlg.FileName)
    Dim Book As New XLS.Book(dlg.FileName)
    Dim Sheet As XLS.Sheet = Book.Sheets(1)  \'这个位置该怎么判断呢

    Dim dr As DataRow = DataTables("表A").AddNew

 


--  作者:有点蓝
--  发布时间:2021/10/20 9:06:00
--  
Dim Book As New XLS.Book(dlg.FileName)
for each sheet as XLS.Sheet in Book.Sheets
……
next

--  作者:cd_tdh
--  发布时间:2021/10/20 9:20:00
--  


请老师帮忙,我这种一次导入多个工作薄,应该怎么修改代码,不同工作薄的计量期数不一样,可以按照实际支付金额来判断,为空后期的就不在导入;

 

Dim dlg As New OpenFileDialog

dlg.Filter= "Excel 97-2003文件(*.xls)|*.xls|Excel 2007文件(*.xlsx)|*.xlsx"

If dlg.ShowDialog = DialogResult.Ok Then

    Dim nm As String = FileSys.GetName(dlg.FileName)

    Dim Book As New XLS.Book(dlg.FileName)

    For Each Sheet As XLS.Sheet In Book.Sheets

        \'Dim Sheet As XLS.Sheet = Book.Sheets(1)

        Dim dr As DataRow = DataTables("表A").AddNew

        dr("项目编号") = sheet(0,0).Text

        dr("项目名称") = sheet(0,2).text

        dr("计量期数") = sheet(4,5).text

        dr("公司开票金额") = sheet(5,5).text

        dr("到账日期") = sheet(6,5).text

        dr("收款账户") = sheet(7,5).text

        dr("到账金额") = sheet(8,5).text

        dr("成本发票") = sheet(9,5).text

        dr("人工工资") = sheet(10,5).text

        dr("成本差额") = sheet(11,5).text

        dr("应交增值税") = sheet(12,5).text

        dr("预缴增值税") = sheet(13,5).text

        dr("抵扣增值税") = sheet(14,5).text

        dr("应补增值税") = sheet(15,5).text

        dr("成本差额所得税") = sheet(16,5).text

        dr("企业所得税") = sheet(17,5).text

        dr("个人所得税") = sheet(18,5).text

        dr("公司扣税小计") = sheet(19,5).text

        dr("资料保证金") = sheet(25,5).text

        dr("安全保证金") = sheet(21,5).text

        dr("质量保证金") = sheet(22,5).text

        dr("应急保证金") = sheet(23,5).text

        dr("其它费用") = sheet(24,5).text

        dr("退扣款项目") = sheet(25,5).text

        dr("其他扣款小计") = sheet(26,5).text

        dr("现金补税") = sheet(27,5).text

        dr("项目管理费") = sheet(28,5).text

        dr("银行手续费") = sheet(29,5).text

        dr("扣款合计") = sheet(35,5).text

        dr("实际支付金额") = sheet(31,5).text

        dr("实际支付日期") = sheet(32,5).text

        dr("公司开票日期") = sheet(33,5).text

        dr("开票类别") = sheet(34,5).text

        dr("备注") = sheet(35,5).text

    Next

End If

 


以下内容是专门发给有点蓝浏览

[此贴子已经被作者于2021/10/20 9:20:59编辑过]

--  作者:有点蓝
--  发布时间:2021/10/20 9:27:00
--  
if val(sheet(31,5).text) > 0 then
不为空

--  作者:cd_tdh
--  发布时间:2021/10/20 9:34:00
--  

多导入多列的应该怎么写啊?不同表需要的导入的列还不一样

 


--  作者:有点蓝
--  发布时间:2021/10/20 9:39:00
--  
遍历所有列,

For n As Integer = 5 To Sheet.Cols.Count -1