C# Epplus导出错误如下:';System.Data.DataSet';对象类型';System.Data.DataTable';没有实物。
我想将gridview转换为.xls,但它会抛出错误,当我单击“确定”时,它的“给我”无法导出到excel。原始错误:“System.Data.DataSet” 对象类型“System.Data.DataTable”不是实物 我的搜索按钮C# Epplus导出错误如下:';System.Data.DataSet';对象类型';System.Data.DataTable';没有实物。,c#,excel,datatable,export-to-excel,epplus-4,C#,Excel,Datatable,Export To Excel,Epplus 4,我想将gridview转换为.xls,但它会抛出错误,当我单击“确定”时,它的“给我”无法导出到excel。原始错误:“System.Data.DataSet” 对象类型“System.Data.DataTable”不是实物 我的搜索按钮 groupBox2.Visible = true; SqlConnection baglanti = new SqlConnection("Data Source=.; Initial Catalog=database; Tru
groupBox2.Visible = true;
SqlConnection baglanti = new SqlConnection("Data Source=.; Initial Catalog=database; Trusted_Connection=yes; MultipleActiveResultSets=True");
SqlDataAdapter da = new SqlDataAdapter();
SqlCommand cmd = new SqlCommand();
DataSet ds = new DataSet();
baglanti.Open();
cmd.CommandText = "SELECT * FROM hostes_tablo WHERE ayak_no=" + comboBox7.Text + "";
da.SelectCommand = cmd;
cmd.Connection = baglanti;
da.Fill(ds, "hostes_tablo");
dataGridView1.DataSource = ds;
dataGridView1.DataMember = "hostes_tablo";
baglanti.Close();
我的导出按钮
var saveFileDialog1 = new SaveFileDialog();
saveFileDialog1.Filter = "Excel File (*.xlsx)|*.xlsx";
saveFileDialog1.FilterIndex = 1;
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
try
{
FileInfo file = new FileInfo(saveFileDialog1.FileName);
if (file.Exists)
{
file.Delete();
}
using (ExcelPackage pck = new ExcelPackage(file))
{
ExcelWorksheet ws = pck.Workbook.Worksheets.Add("Sheet1");
ws.Cells["A1"].LoadFromDataTable(((DataTable)dataGridView1.DataSource), true);
ws.Cells.AutoFitColumns();
using (ExcelRange rng = ws.Cells[1, 1, 1, dataGridView1.Columns.Count])
{
rng.Style.Font.Bold = true;
rng.Style.Fill.PatternType = ExcelFillStyle.Solid;
rng.Style.Fill.BackgroundColor.SetColor(System.Drawing.Color.FromArgb(79, 129, 189));
rng.Style.Font.Color.SetColor(System.Drawing.Color.White);
}
pck.Save();
pck.Dispose();
}
MessageBox.Show(string.Format("Excel file \"{0}\" generated successfully.", file.Name));
}
catch (Exception ex)
{
MessageBox.Show("Failed to export to Excel. Original error: " + ex.Message);
}
}
当我单击导出按钮时,我搜索它的“给我”错误。我认为从
数据集
到数据表
的转换给出了错误。不能将数据集
直接转换为数据表
请使用下面的代码执行此操作
BindingSource bs = (BindingSource)dataGridView1.DataSource;
DataTable dt= (DataTable) bs.DataSource;
ws.Cells["A1"].LoadFromDataTable(dt, true);
你说得对,我正在从数据集转换到数据表
var saveFileDialog1 = new SaveFileDialog();
saveFileDialog1.Filter = "Excel Dosyası (*.xlsx)|*.xlsx";
saveFileDialog1.FilterIndex = 1;
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
try
{
DataSet ds = dataGridView1.DataSource as DataSet;
if (ds != null)
{
DataTable tbl = ds.Tables["hostes_tablo"];
FileInfo file = new FileInfo(saveFileDialog1.FileName);
if (file.Exists)
{
file.Delete();
}
using (ExcelPackage pck = new ExcelPackage(file))
{
ExcelWorksheet ws = pck.Workbook.Worksheets.Add("AjansRed Sorgu Sonuç");
ws.Cells["A1"].LoadFromDataTable(tbl, true);
ws.Cells.AutoFitColumns();
ws.Cells[1,dataGridView1.Columns.Count+2].Value = label81.Text.ToString();
using (ExcelRange rng = ws.Cells[1, 1, 1, dataGridView1.Columns.Count+1])//ws.cells[from row, from column, to row, to column]. sayıların anlamı
{
rng.Style.Font.Bold = true;
rng.Style.Fill.PatternType = ExcelFillStyle.Solid;
rng.Style.Fill.BackgroundColor.SetColor(System.Drawing.Color.FromArgb(79, 129, 189));
rng.Style.Font.Color.SetColor(System.Drawing.Color.White);
}
pck.Save();
pck.Dispose();
}
MessageBox.Show(string.Format(@"Sorgu Sonucunuzu İçeren ""{0}"" Başarıyla Dışarıya Aktarıldı!", file.Name));
}
}
catch (Exception ex)
{
MessageBox.Show("Hata! Hata! Hata! Excel Dışarı Aktarma Esnasında Sorun Oluştu. Original error: " + ex.Message);
}
}
您在哪一行收到错误,请发布完整的异常详细信息。不是第行。让我们在程序运行时告诉我@类似的错误System.Data.DataSet“对象类型”System.Windows.Forms.BindingSource“不是实物。您应该在按钮单击事件中的某个位置放置一个
断点
,然后逐行开始调试,这样您就可以知道异常发生在哪一行,并提供更详细的异常消息。这是找到解决方案的唯一方法。