我正在使用 OLEDB 将字符串写入 excel 文件。除了有时由于某种原因缺少文本开头/结尾的空格外,它可以正常工作。“abc”或“abc \r\n”之类的东西变成了“abc”。我通过在 microsoft excel 中打开生成的文件来注意到这一点,在那里我看不到空间。当我使用 OLEDB 读取生成的文件时,我也看不到空间。更新:经过一些测试,我发现不是因为OLEDB。通过 OLEDB 生成 excel 文件后,我使用了一点 excel 自动化来格式化文件。我做的事情很简单,只是改变了 2 列的宽度,这段代码以某种方式删除了空间。任何建议表示赞赏。
excel = new Excel.Application();
excel.Workbooks.Open(file, 0, false, 5, System.Reflection.Missing.Value, System.Reflection.Missing.Value, false, Excel.XlPlatform.xlWindows, "\t", false, false, 0, true);
excel.Visible = false;
foreach (var obj in excel.Workbooks[1].Worksheets)
{
Excel.Worksheet sheet = (Excel.Worksheet)obj;
sheet.Columns["B"].ColumnWidth = 50;
sheet.Columns["C"].ColumnWidth = 120;
}
excel.Workbooks[1].SaveAs(file, Excel.XlFileFormat.xlOpenXMLWorkbook,
missing, missing, missing, missing,
Excel.XlSaveAsAccessMode.xlNoChange,
missing, missing, missing, missing, missing);
更新:看来这纯粹是excel的问题,删除自动化代码将生成与我预期相同的excel文件。但是在 MS excel 中不做任何更改的打开/保存将删除前导/尾随空格。