如何使用数据集将数据从Datagrid视图传输到PDF [英] How to Transfer Data From Datagrid View To PDF using Dataset

查看:62
本文介绍了如何使用数据集将数据从Datagrid视图传输到PDF的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

您好,我正在使用Vb.Net Desktop Applicati 。我想从Datagrid View To Data进行数据传输,数据来自DataSet。

Hello, i am working with the Vb.Net Desktop Application. i want to do Data Transfer from Datagrid View To PDF and data is coming from DataSet.

推荐答案

试试这个



http: //www.eggheadcafe.com/community/vb/14/10157569/export-datagridview--dataset-data-to-pdf-using-windows-application.aspx [ ^ ]



http://social.msdn.microsoft.com/Forums/pl/adodotnetdataproviders/thread/49a00b1b-df1b-4983-b436-d5a4efb094bf [ ^ ]
Try this

http://www.eggheadcafe.com/community/vb/14/10157569/export-datagridview--dataset-data-to-pdf-using-windows-application.aspx[^]

http://social.msdn.microsoft.com/Forums/pl/adodotnetdataproviders/thread/49a00b1b-df1b-4983-b436-d5a4efb094bf[^]


您好,

根据您的描述,您的意思是要导出数据表单数据集或datagridview to PDF file?



如果是这样,有很多方法可以解决这个问题:



1。使用Reporting Services生成报告:http://www.codeproject.com/KB/reporting-services/ReportExporters_WinForms.aspx

2.在RDLC报告上使用ReportViewer.Drop表报告项,填充它数据,它可以导出为PDF或Excel。

3.使用免费工具。参见http://www.completit.com/Products/DGVE/Overview.aspx上的CompletIT DataGridView扩展



我不确定它是否可以通过Crystal Reports实现。如果你想使用Crustal Report,你可以去Crystal Reports for Visual Studio论坛寻求帮助。
Hi,
Based on your description, do you mean you want to export data form dataset or datagridview to PDF file?

If so, there are many ways can chieve that:

1.Using Reporting Services report generation: http://www.codeproject.com/KB/reporting-services/ReportExporters_WinForms.aspx
2.Using ReportViewer.Drop a Table report item on an RDLC report, populate it with data and it can be exported to PDF or Excel.
3.Using a free tool.See CompletIT DataGridView Extension on http://www.completit.com/Products/DGVE/Overview.aspx

I am not sure whether it can achieve by Crystal Reports. If you want to use Crustal Report, you can go to the Crystal Reports for Visual Studio Forum for help.


你只需下载iTextSharp.dll,它是完全免费的,在我的应用程序中工作是非常好。



只需在你的应用程序中添加这个dll的referance把这个代码你将得到完美的pdf你需要什么



使用iTextSharp.text;

使用iTextSharp.text.pdf;

使用iTextSharp.text.html;

使用iTextSharp .text.html.simpleparser;



public void CreatePdfFiles()

{

try

{





DataSet objDS = db.GetDSBySP(spname); //这里调用方法和填充数据集< br $>


string fPath = Server.MapPath(Report / BalanceDetails.pdf);



if(File .Exists(fPath))

File.Delete(f路径);



文件objDoc =新文件(PageSize.A4,50,50,30,30);

PdfWriter objWriter = PdfWriter .GetInstance(objDoc,new FileStream(fPath,FileMode.Create));



objDoc.Open();

// set header图像表

PdfPTable HeaderImgdatatable = new PdfPTable(2);

HeaderImgdatatable.DefaultCell.Padding = 0;

HeaderImgdatatable.WidthPercentage = 70; //百分比

HeaderImgdatatable.DefaultCell.Horizo​​ntalAlignment = Element.ALIGN_CENTER;

HeaderImgdatatable.DefaultCell.BorderWidth = 0;

//HeaderImgdatatable.DefaultCell .MinimumHeight = 20;





float [] HeaderImgcolumnWidths = {20,60}; //这是没有条形码

HeaderImgdatatable.SetWidths(HeaderImgcolumnWidths);





//标头集

PdfPTable Headerdatatable = new PdfPTable(1);

Headerdatatable.DefaultCell.Padding = 0;

Headerdatatable.WidthPercentage = 100; //百分比

Headerdatatable.DefaultCell.Horizo​​ntalAlignment = Element.ALIGN_LEFT;

Headerdatatable.DefaultCell.BorderWidth = 0;

Headerdatatable.DefaultCell.MinimumHeight = 14;





float [] HeadercolumnWidths = {100}; //这是没有条形码

Headerdatatable.SetWidths(HeadercolumnWidths);



string [] strArr = new string [4];

strArr [0] = - :声明: - ;

strArr [1] =Comaney Name LTD。;

strArr [2 ] =地址,新德里-67;

strArr [3] =其他信息;

// strArr [4] = objDSBookShop.Tables [0] .Rows [0] [BookShopName]。ToString()+,+ objDSBookShop.Tables [0] .Rows [0] [City]。ToString();

for( int i = 0; i< 4; i ++)

{

if(i == 1)

{

Headerdatatable.DefaultCell.BackgroundColor = iTextSharp.text.Color.WHITE;

短语短语=新短语(strArr [i] .ToString(),FontFactory。 GetFont(Times New Roman,12,iTextSharp.text.Font.BOLD));

Headerdatatable.AddCell(短语);

}

else

{

Headerdatatable.DefaultCell.BackgroundColor = iTextSharp.text.Color.WHITE;

短语短语=新短语(strArr [ i] .ToString(),FontFactory.GetFont(Verdana,9));

Headerdatatable.AddCell(短语);

}

}







HeaderImgdatatable.AddCell();

HeaderImgdatatable.AddCell(Headerdatatable);

objDoc.Add(HeaderImgdatatable);

//objDoc.Add(new Paragraph(strArr [4] .ToString()));



iTextSharp.text.Image jpeg = iTextSharp.text.Image.GetInstance(Se rver.MapPath(images / Logo2.jpg));

jpeg.SetAbsolutePosition(60,objDoc.PageSize.Height - 90);

objDoc.Add(jpeg );





objDoc.Add(新段落());



int numColumns = objDS.Tables [0] .Columns.Count;

PdfPTable datatable = new PdfPTable(numColumns);

datatable.DefaultCell.Padding = 0 ;

datatable.WidthPercentage = 100; //百分比

datatable.DefaultCell.Horizo​​ntalAlignment = Element.ALIGN_LEFT;

if(numColumns == 3)

{

float [] columnWidths = {30,30,40};

datatable.SetWidths(columnWidths);

}

else

{

float [] columnWidths = {40,20,20,20};

datatable.SetWidths(columnWidths);

}





//标题行

datatable.DefaultCell.BorderWidth = 0;

datatable.DefaultCell.GrayFill = 0.8f;

datatable.DefaultCell.MinimumHeight = 20;

//datatable.DefaultCell.VerticalAlignment = Element。 ALIGN_MIDDLE;



//获取列nam es $>


foreach(DataColumn col in objDS.Tables [0] .Columns)

{

短语短语=新短语(col.ColumnName.ToString(),FontFactory.GetFont(Verdana,9,iTextSharp.text.Font.BOLD));

datatable.AddCell(短语);

}

datatable.HeaderRows = 1; //这是表头的结尾



for(int i = 0; i< objDS.Tables [0] .Rows.Count; i ++)

{

for(int j = 0; j< objDS.Tables [0] .Columns.Count; j ++)

{

// if(numColumns == 4 && j == 1)

// {

datatable.DefaultCell.BackgroundColor = iTextSharp.text.Color .WHITE;

datatable.DefaultCell.Horizo​​ntalAlignment = iTextSharp.text.Element.ALIGN_LEFT;

短语短语=新短语(objDS.Tables [0] .Rows [i] [j] .ToString(),FontFactory.GetFont(Verdana,9));

datatable.AddCell(短语);

//}

//其他

// {

// datatable.De faultCell.BackgroundColor = iTextSharp.text.Color.WHITE;

// datatable.DefaultCell.Horizo​​ntalAlignment = iTextSharp.text.Element.ALIGN_RIGHT;

//短语短语= new短语(objDS.Tables [0] .Rows [i] [j] .ToString(),FontFactory.GetFont(Verdana,9));

// datatable.AddCell(短语);

//}

}

}



objDoc.Add(datatable );

objDoc.Add(新段落());

objDoc.Add(新段落(谢谢你。 ));

objDoc.Close();

// ShowPdf(fPath);

DownLoadFile(fPath,true);

}

catch(System.Exception objEx)

{

string strEx = objEx.Message;

}

}

private void DownLoadFile(字符串fPath,bool isDownLoad)//下载报告文件的功能

{

string fullPath = Path.GetFullPath(fPath);

string fileName = Path.GetFileName(fullPath);

string ext = Path.GetExtension(fullPath) );

string type =;

if(!(ext == null))

{

ext = ext.ToLower();

}

开关(分机)

{

case。 pdf:

type =Application / pdf;

break;

case.csv:

type =Application / x-msexcel;

休息;

case.rtf:

type =Application / msword;

break;

case.xls:

type =Application / x-msexcel;

break;



}



if((isDownLoad))

{

回复。 AppendHeader(content-disposition,附件; filename =+ fileName);

}

if(type!=)

{

回复.ContentType = type;

}

Response.WriteFile(fullPath);

Response.End();

}
u just download iTextSharp.dll , it is completly free and working in my application is very well.

just add referance of this dll in your application put this code u will get perfect pdf what u need

using iTextSharp.text;
using iTextSharp.text.pdf;
using iTextSharp.text.html;
using iTextSharp.text.html.simpleparser;

public void CreatePdfFiles()
{
try
{


DataSet objDS = db.GetDSBySP("spname");//here call method and fill dataset

string fPath = Server.MapPath("Report/BalanceDetails.pdf");

if (File.Exists(fPath))
File.Delete(fPath);

Document objDoc = new Document(PageSize.A4, 50, 50, 30, 30);
PdfWriter objWriter = PdfWriter.GetInstance(objDoc, new FileStream(fPath, FileMode.Create));

objDoc.Open();
// set header image table
PdfPTable HeaderImgdatatable = new PdfPTable(2);
HeaderImgdatatable.DefaultCell.Padding = 0;
HeaderImgdatatable.WidthPercentage = 70; // percentage
HeaderImgdatatable.DefaultCell.HorizontalAlignment = Element.ALIGN_CENTER;
HeaderImgdatatable.DefaultCell.BorderWidth = 0;
//HeaderImgdatatable.DefaultCell.MinimumHeight = 20;


float[] HeaderImgcolumnWidths = { 20, 60 }; // This is without barcode
HeaderImgdatatable.SetWidths(HeaderImgcolumnWidths);


//Header set
PdfPTable Headerdatatable = new PdfPTable(1);
Headerdatatable.DefaultCell.Padding = 0;
Headerdatatable.WidthPercentage = 100; // percentage
Headerdatatable.DefaultCell.HorizontalAlignment = Element.ALIGN_LEFT;
Headerdatatable.DefaultCell.BorderWidth = 0;
Headerdatatable.DefaultCell.MinimumHeight = 14;


float[] HeadercolumnWidths = { 100 }; // This is without barcode
Headerdatatable.SetWidths(HeadercolumnWidths);

string[] strArr = new string[4];
strArr[0] = " -:STATEMENT:- ";
strArr[1] = " Comaney Name LTD. ";
strArr[2] = " Address, New Delhi-67";
strArr[3] = "other info";
//strArr[4] = objDSBookShop.Tables[0].Rows[0]["BookShopName"].ToString() + ", " + objDSBookShop.Tables[0].Rows[0]["City"].ToString();
for (int i = 0; i < 4; i++)
{
if (i == 1)
{
Headerdatatable.DefaultCell.BackgroundColor = iTextSharp.text.Color.WHITE;
Phrase phrase = new Phrase(strArr[i].ToString(), FontFactory.GetFont("Times New Roman", 12, iTextSharp.text.Font.BOLD));
Headerdatatable.AddCell(phrase);
}
else
{
Headerdatatable.DefaultCell.BackgroundColor = iTextSharp.text.Color.WHITE;
Phrase phrase = new Phrase(strArr[i].ToString(), FontFactory.GetFont("Verdana", 9));
Headerdatatable.AddCell(phrase);
}
}



HeaderImgdatatable.AddCell(" ");
HeaderImgdatatable.AddCell(Headerdatatable);
objDoc.Add(HeaderImgdatatable);
//objDoc.Add(new Paragraph(strArr[4].ToString()));

iTextSharp.text.Image jpeg = iTextSharp.text.Image.GetInstance(Server.MapPath("images/Logo2.jpg"));
jpeg.SetAbsolutePosition(60, objDoc.PageSize.Height - 90);
objDoc.Add(jpeg);


objDoc.Add(new Paragraph(" "));

int numColumns = objDS.Tables[0].Columns.Count;
PdfPTable datatable = new PdfPTable(numColumns);
datatable.DefaultCell.Padding = 0;
datatable.WidthPercentage = 100; // percentage
datatable.DefaultCell.HorizontalAlignment = Element.ALIGN_LEFT;
if (numColumns == 3)
{
float[] columnWidths = { 30, 30,40 };
datatable.SetWidths(columnWidths);
}
else
{
float[] columnWidths = { 40,20,20,20};
datatable.SetWidths(columnWidths);
}


//header row
datatable.DefaultCell.BorderWidth = 0;
datatable.DefaultCell.GrayFill = 0.8f;
datatable.DefaultCell.MinimumHeight = 20;
//datatable.DefaultCell.VerticalAlignment = Element.ALIGN_MIDDLE;

//get column names

foreach (DataColumn col in objDS.Tables[0].Columns)
{
Phrase phrase = new Phrase(col.ColumnName.ToString(), FontFactory.GetFont("Verdana", 9, iTextSharp.text.Font.BOLD));
datatable.AddCell(phrase);
}
datatable.HeaderRows = 1; // this is the end of the table header

for (int i = 0; i < objDS.Tables[0].Rows.Count; i++)
{
for (int j = 0; j < objDS.Tables[0].Columns.Count; j++)
{
//if (numColumns == 4 && j == 1)
//{
datatable.DefaultCell.BackgroundColor = iTextSharp.text.Color.WHITE;
datatable.DefaultCell.HorizontalAlignment = iTextSharp.text.Element.ALIGN_LEFT;
Phrase phrase = new Phrase(objDS.Tables[0].Rows[i][j].ToString(), FontFactory.GetFont("Verdana", 9));
datatable.AddCell(phrase);
//}
//else
//{
// datatable.DefaultCell.BackgroundColor = iTextSharp.text.Color.WHITE;
// datatable.DefaultCell.HorizontalAlignment = iTextSharp.text.Element.ALIGN_RIGHT;
// Phrase phrase = new Phrase(objDS.Tables[0].Rows[i][j].ToString(), FontFactory.GetFont("Verdana", 9));
// datatable.AddCell(phrase);
//}
}
}

objDoc.Add(datatable);
objDoc.Add(new Paragraph(" "));
objDoc.Add(new Paragraph("Thank You. "));
objDoc.Close();
//ShowPdf(fPath);
DownLoadFile(fPath, true);
}
catch (System.Exception objEx)
{
string strEx = objEx.Message;
}
}
private void DownLoadFile(string fPath, bool isDownLoad) //Function for downloading report document
{
string fullPath = Path.GetFullPath(fPath);
string fileName = Path.GetFileName(fullPath);
string ext = Path.GetExtension(fullPath);
string type = "";
if (!(ext == null))
{
ext = ext.ToLower();
}
switch (ext)
{
case ".pdf":
type = "Application/pdf";
break;
case ".csv":
type = "Application/x-msexcel";
break;
case ".rtf":
type = "Application/msword";
break;
case ".xls":
type = "Application/x-msexcel";
break;

}

if ((isDownLoad))
{
Response.AppendHeader("content-disposition", "attachment; filename=" + fileName);
}
if (type != "")
{
Response.ContentType = type;
}
Response.WriteFile(fullPath);
Response.End();
}


这篇关于如何使用数据集将数据从Datagrid视图传输到PDF的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆