c#导出DataGridView内容
我从datagridview导出一些虚拟数据,例如“1.000”c#导出DataGridView内容,c#,datagridview,export,C#,Datagridview,Export,我从datagridview导出一些虚拟数据,例如“1.000” private void btnSaveCalibTable\u单击(对象发送方,事件参数e) { SaveFileDialog sfd=新建SaveFileDialog(); sfd.Filter=“文本文件(*.txt)|*.txt|所有文件(*.*)|*.”; if(sfd.ShowDialog()==DialogResult.OK) { System.IO.StreamWriter文件=新建 System.IO.Strea
private void btnSaveCalibTable\u单击(对象发送方,事件参数e)
{
SaveFileDialog sfd=新建SaveFileDialog();
sfd.Filter=“文本文件(*.txt)|*.txt|所有文件(*.*)|*.”;
if(sfd.ShowDialog()==DialogResult.OK)
{
System.IO.StreamWriter文件=新建
System.IO.StreamWriter(@“C:\Users\Desktop\\sample.txt”);
尝试
{
字符串sLine=“”;
for(int i=0;i正确格式化数字将取决于基础单元格数据类型
要格式化数字,String.format(..)
方法工作良好。但是,如果单元格数据类型为String
,则可能需要将字符串转换为十进制
例如,如果单元格是decimal
类型的单元格,则可以使用
sLine += String.Format("{0:0.000}", (decimal)dgvSensorCalibTable.Rows[i].Cells[j].Value);
同样,这假设基础数据是decimal
类型
此外,为了避免在结尾处出现多余的逗号(,)
string formattedLine = String.Format("{0:0.000}", (decimal)dgvSensorCalibTable.Rows[i].Cells[j].Value);
sLine += formattedLine;
if (j < dgvSensorCalibTable.Columns.Count - 1) {
sLine += ",";
}
string formattedLine=string.Format(“{0:0.000}”,(十进制)dgvSensorCalibTable.Rows[i].Cells[j].Value);
sLine+=格式化线;
if(j
…是MS文档,有大量使用String.Format
方法的信息和示例。“指定的强制转换无效”,这是我得到的。正如我在回答中所述,这将取决于网格中基础数据的“类型”。您的问题没有指定单元格的“类型”是。数据是如何放入网格的?它是什么“类型”的?我知道你说这是“虚拟数据”,但是,当使用“非虚拟数据”时,它是什么“类型”的?如果数据是“类型”string
,那么,你可能需要将字符串解析为一些数值。不清楚“真实”是什么数据可能是。此外,如果当前代码(使用虚拟数据)只是简单地将文本字符“1”添加到单元格中,那么您不能简单地将“1”更改为“1.000”吗?我感觉数据是“数字”的类型。这是未知的。它可能有助于描述如何将非虚拟数据输入到网格中,特别是要格式化的单元格的“类型”。
string formattedLine = String.Format("{0:0.000}", (decimal)dgvSensorCalibTable.Rows[i].Cells[j].Value);
sLine += formattedLine;
if (j < dgvSensorCalibTable.Columns.Count - 1) {
sLine += ",";
}