您试图打开的文件的格式与文件扩展名指定的格式不同



c#在excel中打开csv文件时出错。您试图打开的文件的格式与文件扩展名指定的格式不同。

代码如下:

private void BtnExportExcel_Click(object sender, EventArgs e)
{
string[] data = rtbConvData.Text.Split('n');
SaveFileDialog sfd = new SaveFileDialog();
sfd.Filter = "CSV (Comma delimited)(*.csv)|*.csv";
//sfd.FileName = "Data Conversion " + System.DateTime.Now.ToString("MM_dd_yyyy");
sfd.FileName = lblFileName.Text;
if (sfd.ShowDialog() == DialogResult.OK)
{
object misValue = System.Reflection.Missing.Value;
Microsoft.Office.Interop.Excel.Application xlexcel = new Microsoft.Office.Interop.Excel.Application();
xlexcel.DisplayAlerts = false;
Workbook xlWorkBook = xlexcel.Workbooks.Add(misValue);
Worksheet xlWorkSheet = (Worksheet)xlWorkBook.Worksheets.get_Item(1);
for (int i = 1; i < data.Length; i++)
{
xlWorkSheet.Cells[i, 1] = data[i - 1];
}
// Save the excel file under the captured location from the SaveFileDialog
xlWorkBook.SaveAs(sfd.FileName, XlFileFormat.xlWorkbookNormal, misValue, misValue, misValue, misValue, XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue);
xlexcel.DisplayAlerts = true;
xlWorkBook.Close(true, misValue, misValue);
xlexcel.Quit();
ReleaseObject(xlWorkSheet);
ReleaseObject(xlWorkBook);
ReleaseObject(xlexcel);
}
}

当您有一个逗号分隔值(CSV)扩展名的文件时,那么文件的格式有一些预期的规则,大致如下:

  • 每行代表一行
  • 行由分隔符/分隔符
  • 分隔
  • 用分隔符分隔的值表示
  • 行中的单元格。

当试图解析csv文件时,假定存在这样的规则。无论哪种技术负责解析这样的文件,都有一个验证器来检查"文件是否看起来很好",或者假设它看起来很好。如果文件不符合预期,那么得到一个错误是可以预料的。如果可能的话,你应该把文件转换成csv格式。如果不是,则检测文件格式,并使用适当的解析器对其进行解析。

相关内容

  • 没有找到相关文章

最新更新