Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net RDLC从Excel或PDF导入数据_.net_Import_Reporting_Rdlc - Fatal编程技术网

.net RDLC从Excel或PDF导入数据

.net RDLC从Excel或PDF导入数据,.net,import,reporting,rdlc,.net,Import,Reporting,Rdlc,我有一个Excel和PDF文件,其中包含一个具有多个列和多个行的表格,其中包含粗体文本和背景色样式。我想做的是找到一种方法将其导入到RDLC报告中,这样我就不必创建一个表并手动键入它,这将花费数小时的时间 我不想将其保存为图像,并以这种方式抛出,因为缩放后的文本将不清晰。我问制作原始应用程序的开发人员他是如何做到的,他告诉我他将Excel文件保存为PDF格式,并将其导入到报告中。最初的应用程序是用VBA编码的,所以我不明白为什么Access VBA应用程序可以这样做,而.NET应用程序不能。有什

我有一个Excel和PDF文件,其中包含一个具有多个列和多个行的表格,其中包含粗体文本和背景色样式。我想做的是找到一种方法将其导入到RDLC报告中,这样我就不必创建一个表并手动键入它,这将花费数小时的时间


我不想将其保存为图像,并以这种方式抛出,因为缩放后的文本将不清晰。我问制作原始应用程序的开发人员他是如何做到的,他告诉我他将Excel文件保存为PDF格式,并将其导入到报告中。最初的应用程序是用VBA编码的,所以我不明白为什么Access VBA应用程序可以这样做,而.NET应用程序不能。有什么想法吗?

他很可能是通过VBA运行Excel的,对于同样的方法,您可以在.NET中使用Interop,但我不确定您是否可以将PDF文件导入RLDC报告,如果您感兴趣,这里有一个如何使用Interop将Excel文件保存为PDF的示例:,请注意,您需要Excel 2007或更高版本才能工作


还有另一种方法可能更适合您,特别是如果Excel文件具有类似表格的结构,并且正在使用OLE DB连接到Excel以将Excel用作数据库,那么,您可以在此处找到合适的连接字符串:

尝试此代码

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using iTextSharp.text.pdf;
using iTextSharp.text.pdf.parser;


namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            ExtractTextFromPDFPage("c:\sample.pdf", 1);
        }

        public void ExtractTextFromPDFPage(string pdfFile, int pageNumber)
        {
            PdfReader reader = new PdfReader(pdfFile);
            string text = PdfTextExtractor.GetTextFromPage(reader, pageNumber);
            try { reader.Close(); }
            catch { }
            richTextBox1.Text = text;
        }
    }
}

添加到引用

将Excel文件转换为PDF不是问题所在,而是将已保存的PDF添加到报表中,而不必将每行/每列的所有数据从PDF输入报表的表格中。然后,您最好尝试我告诉您的第二种方法,这样做的好处是,您可以使用Excel文件作为数据源,并且可以在最终报告中为其提供不同的格式。只需从下载此iTextSharp DLL并将其添加到您的C#应用程序中即可。并将此代码放入任何类中。并调用函数。键入有效的PDF文件路径。我做了测试,工作很好。