0
我想將數據從DataGridView的出口與iTextSharp的庫到PDF文件。iTextSharp的錯誤對象引用未設置爲一個實例對象
但是,當我點擊Export Pdf時發生此錯誤。
未將對象引用設置爲對象的實例。
線路錯誤:
//fetch the header text
cellText = Server.HtmlDecode(gvProducts.HeaderRow.Cells[colIndex].Text);
我有這個問題只需要變量rowCountProducts
等於零。
任何人都可以幫助我嗎?
在此先感謝 代碼如下。
if (rowCountProducts >= 0)
{
//link button column is excluded from the list
int colCount = gvProducts.Columns.Count - 1;
//Create a table
table = new PdfPTable(colCount);
table.HorizontalAlignment = 1;
table.WidthPercentage = 100;
//create an array to store column widths
int[] colWidths = new int[gvProducts.Columns.Count];
PdfPCell cell;
string cellText;
//create the header row
for (int colIndex = 0; colIndex < colCount; colIndex++)
{
//set the column width
table.SetWidths(new int[] { 0, 15, 15, 20, 20, 15, 8, 12, 20, 20, 10, 12, 10, 20, 12, 10, 10, 12, 30, 8, 12, 12, 10 });
//fetch the header text
cellText = Server.HtmlDecode(gvProducts.HeaderRow.Cells[colIndex].Text);
//create a new cell with header text
BaseFont bf = BaseFont.CreateFont(
BaseFont.HELVETICA,
BaseFont.CP1252,
BaseFont.EMBEDDED,
false);
iTextSharp.text.Font font = new iTextSharp.text.Font(bf, 10, iTextSharp.text.Font.BOLD, BaseColor.WHITE);
cell = new PdfPCell(new Phrase(cellText.Replace("<br />", Environment.NewLine), font));
cell.HorizontalAlignment = Element.ALIGN_CENTER;
cell.VerticalAlignment = Element.ALIGN_MIDDLE;
cell.FixedHeight = 55f;
//set the background color for the header cell
cell.BackgroundColor = new BaseColor(System.Drawing.ColorTranslator.FromHtml("#a52a2a"));
//add the cell to the table. we dont need to create a row and add cells to the row
//since we set the column count of the table to 4, it will automatically create row for
//every 4 cells
table.AddCell(cell);
}
//export rows from GridView to table
for (int rowIndex = 0; rowIndex < gvProducts.Rows.Count; rowIndex++)
{
if (gvProducts.Rows[rowIndex].RowType == DataControlRowType.DataRow)
{
for (int j = 0; j < gvProducts.Columns.Count - 1; j++)
{
//fetch the column value of the current row
cellText = Server.HtmlDecode(gvProducts.Rows[rowIndex].Cells[j].Text);
//create a new cell with column value
cell = new PdfPCell(new Phrase(cellText, FontFactory.GetFont("PrepareForExport", 8)));
cell.HorizontalAlignment = Element.ALIGN_CENTER;
cell.VerticalAlignment = Element.ALIGN_MIDDLE;
cell.FixedHeight = 55f;
string cellText2 = Server.HtmlDecode(gvProducts.Rows[rowIndex].Cells[6].Text);
if (cellText2.ToString() == "B")
{
cell.BackgroundColor = new BaseColor(System.Drawing.ColorTranslator.FromHtml("#f5f5dc"));
}
if (cellText2.ToString() == "L")
{
cell.BackgroundColor = new BaseColor(System.Drawing.ColorTranslator.FromHtml("#dcf5f5"));
}
if (cellText2.ToString() == "T")
{
cell.BackgroundColor = new BaseColor(System.Drawing.ColorTranslator.FromHtml("#ffe9de"));
}
//add the cell to the table
table.AddCell(cell);
}
}
}
}
你說'cellText = Server.HtmlDecode(gvProducts.HeaderRow.Cells [colIndex] .Text);'是錯誤行。據我所見,該行上沒有引用iTextSharp類。因此,你應該把你自己的錯誤搜索和這個問題集中在其他細節上 - 像iTextSharp一樣集中一個問題,這樣可以避開那些對iTextSharp不太瞭解的人,但是可能非常關注' Server.HtmlDecode(gvProducts.HeaderRow.Cells [colIndex]。文本)'。 – mkl