Microsoft.Office.Interop.Excel.Application excelApp = new Microsoft.Office.Interop.Excel.Application();
Workbook excelWB = excelApp.Workbooks.Add(System.Type.Missing); //创建工作簿(WorkBook:即Excel文件主体本身)
Worksheet excelWS = (Worksheet)excelWB.Worksheets[1];
string filepath = "";
FolderBrowserDialog folder = new FolderBrowserDialog();
folder.Description = "选择文件所在文件夹目录"; //提示的文字
if (folder.ShowDialog() == DialogResult.OK)
{
filepath = folder.SelectedPath;
}
Microsoft.Office.Interop.Excel.Range range1 = xlsWorkSheetAdd.get_Range("J1", "J65535");
range1.NumberFormat = "@";//文本格式
excelWB.SaveAs(filepath+"结果.xlsx");
excelWB.Close();
excelApp.Quit();
MessageBox.Show("生成成功!");
有一个不是很完美的方法,就是在内容的首部或尾部加入全角空格,这样excle会自动显示为文本,就是显示的时候会有一串空白显示就是
代码没粘全把,你这个xlsWorkShettAdd在哪定义的
建议采用npoi这个框架 用起来可能更加方便一些
以前碰见过 忘记具体怎么搞得了,建议换成npoi吧 维护友好一些
如果你考虑第三方库,可以试试Free Spire.XLS,免费版本对XLSX格式没有限制,可以从网站下载也可以从NuGet安装。
把指定单元格或单元格区域设置成文本格式:
Workbook wb = new Workbook();
wb.LoadFromFile("Book1.xlsx");
Worksheet sheet = wb.Worksheets[0];
sheet.Range["A2:CE9999"].NumberFormat = "@";
wb.SaveToFile("result.xlsx", ExcelVersion.Version2013);
谢邀,楼上大佬说的对