//Try some thing like this... You can export your entire dataGridView through this.
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.Data.Sql;
using System.Data.SqlClient;
using System.Configuration;
void ExportTOExcel(DataGridView gridviewID)
{
Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application();
Microsoft.Office.Interop.Excel.Workbook xlWorkBook;
Microsoft.Office.Interop.Excel.Worksheet xlWorkSheet;
object misValue = System.Reflection.Missing.Value;
xlApp = new Microsoft.Office.Interop.Excel.Application();
xlWorkBook = xlApp.Workbooks.Add(misValue);
xlWorkSheet = (Microsoft.Office.Interop.Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);
//add data
int StartCol = 1;`enter code here`
int StartRow = 1;
int j = 0, i = 0;
//Write Headers
for (j = 0; j < gridviewID.Columns.Count; j++)
{
Microsoft.Office.Interop.Excel.Range myRange = (Microsoft.Office.Interop.Excel.Range)xlWorkSheet.Cells[StartRow, StartCol + j];
myRange.Value2 = gridviewID.Columns[j].HeaderText;
}
StartRow++;
//Write datagridview content
for (i = 0; i < gridviewID.Rows.Count; i++)
{
for (j = 0; j < gridviewID.Columns.Count; j++)
{
try
{
Microsoft.Office.Interop.Excel.Range myRange = (Microsoft.Office.Interop.Excel.Range)xlWorkSheet.Cells[StartRow + i, StartCol + j];
myRange.Value2 = gridviewID[j, i].Value == null ? "" : gridviewID[j, i].Value;
}
catch
{
;
}
}
}
Microsoft.Office.Interop.Excel.Range chartRange;
Microsoft.Office.Interop.Excel.ChartObjects xlCharts = (Microsoft.Office.Interop.Excel.ChartObjects)xlWorkSheet.ChartObjects(Type.Missing);
Microsoft.Office.Interop.Excel.ChartObject myChart = (Microsoft.Office.Interop.Excel.ChartObject)xlCharts.Add(10, 80, 300, 250);
Microsoft.Office.Interop.Excel.Chart chartPage = myChart.Chart;
chartRange = xlWorkSheet.get_Range("A1", "B" + gridviewID.Rows.Count);
chartPage.SetSourceData(chartRange, misValue);
chartPage.ChartType = Microsoft.Office.Interop.Excel.XlChartType.xlColumnClustered;
xlApp.Visible = true;
}
}
}
können Sie mir bitte mehr detai liefern ls? –
Können Sie Ihre Daten, die Sie durchforsten, reduzieren, damit Sie aufspüren können, welcher Teil davon tatsächlich das Problem verursacht? Ist es eine bestimmte Zelle oder ist es in der gesamten Tabelle endemisch? – REW
Ist der Daten Unicode oder Binär? – jdweng