如何使用itextsharp将listview数据导出到C#中的pdf [英] How to export listview data to pdf in C# using itextsharp
本文介绍了如何使用itextsharp将listview数据导出到C#中的pdf的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
Hi. I want to export data in Listview in C# project using iTextSharp. I am beginner in C#, Please help me to solve this problem. The source code is as following:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;
using iTextSharp.text;
using iTextSharp.text.pdf;
namespace Loan_Calculator
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
this.listView1.ColumnWidthChanging += new ColumnWidthChangingEventHandler(listView1_ColumnWidthChanging);
}
void listView1_ColumnWidthChanging(object sender, ColumnWidthChangingEventArgs e)
{
Console.Write("Column Resizing");
e.NewWidth = this.listView1.Columns[e.ColumnIndex].Width;
e.Cancel = true;
}
double kreditmeblegi;
double illikfaiz;
double fm;
double value1;
double ay;
double il;
double ayliqodenis;
double umumiodenis;
double esasborc;
double faiz;
double qaliqmebleg;
double odenilenfaiz;
int nomre;
private void button1_Click(object sender, EventArgs e)
{
if (comboBox2.Text == "ay")
{
kreditmeblegi = Convert.ToDouble(textBox1.Text);
illikfaiz = Convert.ToDouble(textBox2.Text);
ay = Convert.ToDouble(textBox3.Text);
fm = illikfaiz / (12 * 100);
value1 = 1 - (1 / Math.Pow((1 + fm), ay));
ayliqodenis = (kreditmeblegi * fm) / value1;
umumiodenis = ayliqodenis * ay;
odenilenfaiz = umumiodenis - kreditmeblegi;
DateTime date = this.dateTimePicker1.Value.Date;
DateTime nyear = new DateTime();
string format = "dd / MM / yyyy";
qaliqmebleg = kreditmeblegi;
for (int i = 1; i <= ay; i++)
{
nomre = nomre + 1;
ListViewItem lvi = new ListViewItem(nomre.ToString());
nyear = date.AddMonths(i);
lvi.SubItems.Add(nyear.ToString(format));
lvi.SubItems.Add(ayliqodenis.ToString("N2"));
faiz = qaliqmebleg * fm;
esasborc = ayliqodenis - faiz;
qaliqmebleg = qaliqmebleg - esasborc;
lvi.SubItems.Add(esasborc.ToString("N2"));
lvi.SubItems.Add(faiz.ToString("N2"));
lvi.SubItems.Add(qaliqmebleg.ToString("N2"));
listView1.Items.Add(lvi);
}
button1.Enabled = false;
}
else
{
kreditmeblegi = Convert.ToDouble(textBox1.Text);
illikfaiz = Convert.ToDouble(textBox2.Text);
il = Convert.ToDouble(textBox3.Text) * 12;
fm = illikfaiz / (12 * 100);
value1 = 1 - (1 / Math.Pow((1 + fm), il));
ayliqodenis = (kreditmeblegi * fm) / value1;
umumiodenis = ayliqodenis * il;
odenilenfaiz = umumiodenis - kreditmeblegi;
DateTime date = this.dateTimePicker1.Value.Date;
DateTime nyear = new DateTime();
string format = "dd / MM / yyyy";
qaliqmebleg = kreditmeblegi;
for (int j = 1; j <= il; j++)
{
nomre = nomre + 1;
ListViewItem lvi = new ListViewItem(nomre.ToString());
nyear = date.AddMonths(j);
lvi.SubItems.Add(nyear.ToString(format));
lvi.SubItems.Add(ayliqodenis.ToString("N2"));
faiz = qaliqmebleg * fm;
esasborc = ayliqodenis - faiz;
qaliqmebleg = qaliqmebleg - esasborc;
lvi.SubItems.Add(esasborc.ToString("N2"));
lvi.SubItems.Add(faiz.ToString("N2"));
lvi.SubItems.Add(qaliqmebleg.ToString("N2"));
listView1.Items.Add(lvi);
}
button1.Enabled = false;
}
if (Convert.ToDouble(textBox1.Text) == 0 || Convert.ToDouble(textBox2.Text) == 0 || Convert.ToDouble(textBox3.Text) == 0)
{
MessageBox.Show("Sıfır daxil etmək olmaz!");
button1.Enabled = true;
listView1.Items.Clear();
}
label9.Text = ayliqodenis.ToString("N2") + " " + comboBox1.Text;
label10.Text = umumiodenis.ToString("N2") + " " + comboBox1.Text;
label12.Text = odenilenfaiz.ToString("N2") + " " + comboBox1.Text;
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void ExporttoPDFToolStripMenuItem_Click(object sender, EventArgs e)
{
FileStream fs = new FileStream("Loan Calculator.pdf", FileMode.Create, FileAccess.Write, FileShare.None);
Document doc = new Document(PageSize.A4);
PdfWriter writer = PdfWriter.GetInstance(doc, fs);
doc.Open();
doc.Add(new Paragraph("Hello World"));
doc.Close();
}
}
}
我尝试了什么:
我可以将Hello world句子导出为PDF,但我不知道如何将Listview导出为PDF。
What I have tried:
I can export Hello world sentence to PDF, but I don't how to export Listview to PDF.
推荐答案
请看下面的代码
Please have a look at below code
listView1.View = View.Details;
listView1.GridLines = true;
listView1.FullRowSelect = false;
//Add column header
listView1.Columns.Add("ProductName", 100);
listView1.Columns.Add("Price", 70);
listView1.Columns.Add("Quantity", 70);
//Add items in the listview
string[] arr = new string[4];
ListViewItem itm;
//Add first item
arr[0] = "product_1";
arr[1] = "100";
arr[2] = "10";
itm = new ListViewItem(arr);
listView1.Items.Add(itm);
//Add second item
arr[0] = "product_2";
arr[1] = "200";
arr[2] = "20";
itm = new ListViewItem(arr);
listView1.Items.Add(itm);
//Creating iTextSharp Table from the DataTable data
PdfPTable pdfTable = new PdfPTable(listView1.Columns.Count);
pdfTable.DefaultCell.Padding = 3;
pdfTable.WidthPercentage = 30;
pdfTable.HorizontalAlignment = Element.ALIGN_LEFT;
pdfTable.DefaultCell.BorderWidth = 1;
//Adding Header row
foreach (ColumnHeader column in listView1.Columns)
{
PdfPCell cell = new PdfPCell(new Phrase(column.Text));
pdfTable.AddCell(cell);
}
//Adding DataRow
foreach (ListViewItem itemRow in listView1.Items)
{
int i = 0;
for (i = 0; i < itemRow.SubItems.Count - 1; i++)
{
pdfTable.AddCell(itemRow.SubItems[i].Text);
}
}
//Exporting to PDF
string folderPath = @"D:/Temp/";
if (!Directory.Exists(folderPath))
{
Directory.CreateDirectory(folderPath);
}
using (FileStream stream = new FileStream(folderPath + "DataGridViewExport.pdf", FileMode.Create))
{
Document pdfDoc = new Document(PageSize.A2, 10f, 10f, 10f, 0f);
PdfWriter.GetInstance(pdfDoc, stream);
pdfDoc.Open();
pdfDoc.Add(pdfTable);
pdfDoc.Close();
stream.Close();
}
这篇关于如何使用itextsharp将listview数据导出到C#中的pdf的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文