C# Winform 创建Excel文件

baidu_37499939 2017-02-10 06:51:25
不联网创建出错。
联网就能创建成功。

怎么回事啊?
...全文
251 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
baidu_34633664 2017-02-14
  • 打赏
  • 举报
回复
把Try 去掉,看看 问题在哪里吧,感觉是workbook保存里,这里的参数挺精简的 Excel.Application xlsApp = new Excel.Application(); if (xlsApp == null) { MessageBox.Show("Not Found Excel.Application"); return; }//check 4 Excel.Workbook xlsWBoks = xlsApp.Workbooks.Add(Excel.XlWBATemplate.xlWBATWorksheet); Excel.Worksheet xlsSheet = (Excel.Worksheet)xlsWBoks.Worksheets[1]; object missing = System.Reflection.Missing.Value; int FormatNum = (Convert.ToDouble(xlsApp.Version) < 12) ? -4143 : 56;//2003 or 2007+ for 赋些值 xlsSheet.SaveAs(StrPath, FormatNum, missing, missing, missing, missing, missing, missing, missing, missing); 不同点是,sheet 去保存。你的是workbook去保存的。
CN001 2017-02-14
  • 打赏
  • 举报
回复
贴出来的代码没问题。
baidu_37499939 2017-02-14
  • 打赏
  • 举报
回复
引用 4 楼 baidu_34633664 的回复:
folderPath 这个不是你本地来的路径 是不是啊?
是的阿
baidu_37499939 2017-02-14
  • 打赏
  • 举报
回复
引用 7 楼 baidu_34633664 的回复:
把Try 去掉,看看 问题在哪里吧,感觉是workbook保存里,这里的参数挺精简的 Excel.Application xlsApp = new Excel.Application(); if (xlsApp == null) { MessageBox.Show("Not Found Excel.Application"); return; }//check 4 Excel.Workbook xlsWBoks = xlsApp.Workbooks.Add(Excel.XlWBATemplate.xlWBATWorksheet); Excel.Worksheet xlsSheet = (Excel.Worksheet)xlsWBoks.Worksheets[1]; object missing = System.Reflection.Missing.Value; int FormatNum = (Convert.ToDouble(xlsApp.Version) < 12) ? -4143 : 56;//2003 or 2007+ for 赋些值 xlsSheet.SaveAs(StrPath, FormatNum, missing, missing, missing, missing, missing, missing, missing, missing); 不同点是,sheet 去保存。你的是workbook去保存的。
有时间试试,我再仔细研究研究这,谢谢啦。
baidu_37499939 2017-02-13
  • 打赏
  • 举报
回复
引用 2 楼 sp1234 的回复:
贴源代码。 否则这种问题是刷版面吗?
try { Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application(); string folderPath = folderBrowserDialog2.SelectedPath.ToString(); if (excel == null) { MessageBox.Show("error"); } else { int folderCnt; folderCnt = dirInfo.Count(); Microsoft.Office.Interop.Excel.Workbook xlBook = excel.Workbooks.Add(Microsoft.Office.Interop.Excel.XlWBATemplate.xlWBATWorksheet); //Get sheet Microsoft.Office.Interop.Excel.Worksheet xlSheet = xlBook.Worksheets[1]; Microsoft.Office.Interop.Excel.Range range; //loop for (int i = 0; i < folderCnt + 1; i++) { if (0 == i) { range = xlSheet.Cells[i + 1, 1]; range.Value = "folder name"; range.Font.Bold = true; } else { xlSheet.Cells[i + 1, 1] = dirInfo[i - 1].ToString(); } xlSheet.Columns.EntireColumn.AutoFit();//列宽自适应 excel.Visible = true; } xlSheet.Name = "FolderName"; //Save Excel xlBook.Saved = true; xlBook.SaveCopyAs(folderPath + "\\test.xlsx"); excel.Quit(); //释放 excel = null; //trash recycling GC.Collect();
baidu_34633664 2017-02-13
  • 打赏
  • 举报
回复
folderPath 这个不是你本地来的路径 是不是啊?
threenewbee 2017-02-11
  • 打赏
  • 举报
回复
you could use npoi, a independent office library
  • 打赏
  • 举报
回复
贴源代码。 否则这种问题是刷版面吗?

110,533

社区成员

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

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

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