C#中datagridview实时显示的数据全部导出到单元格的问题

qq_43224185 2019-06-14 10:51:59
C#中datagridview中的实时数据怎么全部导出到excel表格里呢?
...全文
1311 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_43224185 2019-06-18
  • 打赏
  • 举报
回复
谢谢大家,我已经通过listView将源数据显示出来,之后将这些接收到的实时变化的数据导入到excel表格里啦
it_gz_xi 2019-06-17
  • 打赏
  • 举报
回复
那你不要用dataGridView1的数据来导出,你应该存在一个数据内存里面,比如存在一个datatable或者存在一个list里面。到出的时候从datatable或者List导出
lich2005 2019-06-17
  • 打赏
  • 举报
回复
你想实时地导出 0.1 秒变化中的数据,这几乎是不可能实现的。应该是需求上有问题吧。
比较可行的,是这些变化的数据都写入到了数据库中的某个表,然后在软件界面中通过某些筛选条件把这些数据导出到EXCEL来。
enaking 2019-06-17
  • 打赏
  • 举报
回复
引用 5 楼 qq_43224185 的回复:
引用 3 楼 enaking 的回复:
就是循环每行数据写入,像楼上这样。
不是的,我dgv[1][4]这个单元格里的数据是不断变化的,比如说是0.1秒变换一个数据,我怎么将这个单元格里不断变化的数据全部导出来?
是每变化一次就导一次吗,并且有一点你没描述清楚,是导入到一个文件里,然后行数不停地递增?。其实这些不是技术问题,应该是业务逻问题。
qq_43224185 2019-06-15
  • 打赏
  • 举报
回复
引用 2 楼 it_gz_xi 的回复:
建议你用NOPI来实现,标题你都会写了数据你不会写?
for (int i = 4; i < 7; i++)
{
worksheet.Cells[r + 2, i ] = dataGridView1.Rows[r].Cells[i].Value;
}
不是的,我dgv[1][4]这个单元格里的数据是不断变化的,比如说是0.1秒变换一个数据,我怎么将这个单元格里不断变化的数据全部导出来?
qq_43224185 2019-06-15
  • 打赏
  • 举报
回复
引用 3 楼 enaking 的回复:
就是循环每行数据写入,像楼上这样。
不是的,我dgv[1][4]这个单元格里的数据是不断变化的,比如说是0.1秒变换一个数据,我怎么将这个单元格里不断变化的数据全部导出来?
qq_43224185 2019-06-15
  • 打赏
  • 举报
回复
不是的,我dgv[1][4]这个单元格里的数据是不断变化的,比如说是0.1秒变换一个数据,我怎么将这个单元格里不断变化的数据全部导出来?
enaking 2019-06-14
  • 打赏
  • 举报
回复
就是循环每行数据写入,像楼上这样。
it_gz_xi 2019-06-14
  • 打赏
  • 举报
回复
建议你用NOPI来实现,标题你都会写了数据你不会写? for (int i = 4; i < 7; i++) { worksheet.Cells[r + 2, i ] = dataGridView1.Rows[r].Cells[i].Value; }
qq_43224185 2019-06-14
  • 打赏
  • 举报
回复
//TAG得到实时数据
for (i = 0; i < 3; i++)
{
this.dataGridView_TAG.Rows[1].Cells[i + 4].Value = Convert.ToInt16(this.dataGridView_BS_SET.Rows [i].Cells[4].Value);
}

//保存Excel表格
private void button_dis_Click(object sender, EventArgs e)
{
string fileName = "";
string saveFileName = "";


SaveFileDialog saveDialog = new SaveFileDialog();
saveDialog.DefaultExt = "xls";
saveDialog.Filter = "Excel文件|*.xls";
saveDialog.FileName = fileName;
saveDialog.ShowDialog();
saveFileName = saveDialog.FileName;

if (saveFileName.IndexOf(":") < 0) return; //被点了取消
Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application();

if (xlApp == null)
{
MessageBox.Show("无法创建Excel对象,您的电脑可能未安装Excel");
return;
}

Microsoft.Office.Interop.Excel.Workbooks workbooks = xlApp.Workbooks;
Microsoft.Office.Interop.Excel.Workbook workbook = workbooks.Add(Microsoft.Office.Interop.Excel.XlWBATemplate.xlWBATWorksheet);
Microsoft.Office.Interop.Excel.Worksheet worksheet = (Microsoft.Office.Interop.Excel.Worksheet)workbook.Worksheets[1];//取得sheet1

//写入标题
for (int i = 4; i < 7; i++)
{ worksheet.Cells[1, i - 3] = this.dataGridView_TAG.Columns[i].HeaderText; }

//写入数值
/* for (int r = 0; r < this.dataGridView_TAG.Rows.Count; r++) // 怎么改?
{
for (int i = 0; i < dataGridView1.ColumnCount; i++)
{
worksheet.Cells[r + 2, i + 1] = dataGridView1.Rows[r].Cells[i].Value;
}
System.Windows.Forms.Application.DoEvents();
}*/

if (DateTime.Now.Second !=0)
{


for (int r = 1; r < 10; r++)
{


worksheet.Cells[r + 1, 1] = this.dataGridView_TAG.Rows[1].Cells[4].Value;
worksheet.Cells[r + 1, 2] = this.dataGridView_TAG.Rows[1].Cells[5].Value;
worksheet.Cells[r + 1, 3] = this.dataGridView_TAG.Rows[1].Cells[6].Value;


}



worksheet.Columns.EntireColumn.AutoFit();//列宽自适应
MessageBox.Show(fileName + "资料保存成功", "提示", MessageBoxButtons.OK);

if (saveFileName != "")
{
try
{
workbook.Saved = true;
workbook.SaveCopyAs(saveFileName); //fileSaved = true;
}
catch (Exception ex)
{//fileSaved = false;
MessageBox.Show("导出文件时出错,文件可能正被打开!\n" + ex.Message);
}
}
xlApp.Quit();
GC.Collect();//强行销毁 }


}

}

111,098

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧