.net生成excel附件并需要给其中几个赋值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了.net生成excel附件并需要给其中几个赋值相关的知识,希望对你有一定的参考价值。

.net生成excel附件并需要给里面的几个字段赋值 然后保存到本地

参考技术A 引用aspose.cells的dll很方便,先构建一个datatable,根据datatable数据源直接生成Excel 参考技术B 可以在用Gridview绑定你要输出的数据,点击button时,将gridview的数据导出到Excel。本回答被提问者采纳 参考技术C PageOffice在这方面做得很好,网上搜搜有很多它们的示例代码呢 参考技术D 不太明白,可以将所需要的数据进行赋值后再导出到Excel中。

使用Excel VBA向Access DB添加附件

我一直在研究过去几个小时,没有找到解决方案。我想要做的是让用户从Excel填写用户表单并将数据提交给Access,但其中一个字段需要一个基本上是附件的屏幕截图。我一直在尝试两组代码(DAO和ADODB)。我可以使用ADODB连接轻松地向Access提交任何其他数据类型,但不能提供附件。以下是我的2个代码:

    Private Sub cmdSave_Click()

    Dim fd As FileDialog
    Set fd = Application.FileDialog(msoFileDialogOpen)
    With fd
        .AllowMultiSelect = False
        .Title = "Please select file to attach"
        If .Show = True Then
            SelectFile = .SelectedItems(1)
        Else
            Exit Sub
        End If
    End With
    Set fd = Nothing

Dim NewCon As DAO.Database
Dim RS As DAO.Recordset
Dim strFileName As String
Dim wrkAcc As Workspace

Set NewCon = OpenDatabase("C:Usersmy.userDocumentsDatabase1.accdb")
Set RS = OpenRecordset("REPORTS", dbOpenTable)

RS.Edit

RS.Fields("NAME").Value = Application.UserName
RS.Fields("DATE_REPORT").Value = Date
RS.Fields("CLAIM_TYPE").Value = "Fielda"
RS.Fields("CLIENT_NAME").Value = "Fieldb"
RS.Fields("ISSUE").Value = "Fieldc"
RS.Fields("REPORT_NUMBERS").Value = "Fieldd"
'RS.Fields("ATTACHMENTS").      (this is where I want to place the attachment)
RS.Fields("LOG_TIME").Value = Now

RS.Close
NewCon.Close

End Sub

这是ADODB:

Private Sub Image1_Click()


    Dim fd As FileDialog
    Set fd = Application.FileDialog(msoFileDialogOpen)
    With fd
        .AllowMultiSelect = False
        .Title = "Please select file to attach"
        If .Show = True Then
            SelectFile = .SelectedItems(1)
        Else
            Exit Sub
        End If
    End With
    Set fd = Nothing

        Dim NewCon As ADODB.Connection
        Set NewCon = New ADODB.Connection
        Dim Recordset As ADODB.Recordset
        Set Recordset = New ADODB.Recordset

        NewCon.Open "Provider=Microsoft.ace.oledb.12.0;Data Source=C:Usersmy.userDocumentsDatabase1.accdb"
        Recordset.Open "REPORTS", NewCon, adOpenDynamic, adLockOptimistic
        Recordset.AddNew

        Recordset.Fields(1).Value = Application.UserName
        Recordset.Fields(2).Value = Date
        Recordset.Fields(3).Value = "Fielda"
        Recordset.Fields(4).Value = "Fieldb"
        Recordset.Fields(5).Value = "Fieldc"
        Recordset.Fields(6).Value = "Fieldd"
'       Recordset.Fields(6) (this is where I want to place the attachment)
        Recordset.Fields(8).Value = Now

        Recordset.Update
        Recordset.Close
        NewCon.Close

        End Sub
答案

在我看来,DAO是最简单的附件工作方式。

附件字段实际上是一个子表,可以作为记录集打开。您可以像使用任何记录集一样使用该字段。 "FileData"字段在附件字段中存储文件的压缩版本。

您可以调用LoadFromFile方法将新文件加载到"FileData"字段,或调用SaveToFile方法将附件保存到磁盘。

该记录集中还有一些其他字段,例如文件名,当您使用LoadFromFile方法时会自动填充这些字段

需要进行一些更改。

值初始化需要使用DAO.Recordset2来支持附件:

Dim RS As DAO.Recordset2
Dim rsAttachments As DAO.Recordset2

赋值部分,使用内部记录集:

RS.Fields("REPORT_NUMBERS").Value = "Fieldd"
Set rsAttachments = RS.Fields("ATTACHMENTS").Value
rsAttachments.AddNew
rsAttachments.Fields("FileData").LoadFromFile SelectFile
rsAttachments.Update
rsAttachments.Close
RS.Fields("LOG_TIME").Value = Now

以上是关于.net生成excel附件并需要给其中几个赋值的主要内容,如果未能解决你的问题,请参考以下文章

生成的 Excel 文件在不同系统中显示不同的日期值(Asp.net Web 应用程序)

ABAP 通过程序向外部邮箱发送邮件时生成的Excel附件能否设置格式?怎么设置

生成word附件和word域动态赋值

.net excel 图表

matlab中矩阵随机取几个元素赋值

数据导出生成word附件使用POI的XWPFTemplate对象