永发信息网

我用visual C#.NET打开一个excel,它显示为可读文件,如何使打开的文件为可读写??就是普通的模式。

答案:3  悬赏:30  手机版
解决时间 2021-03-23 13:31
  • 提问者网友:战魂
  • 2021-03-23 00:17
我用visual C#.NET打开一个excel,它显示为可读文件,如何使打开的文件为可读写??就是普通的模式。
最佳答案
  • 五星知识达人网友:孤独入客枕
  • 2021-03-23 01:34
我也正在做这个, 下面是我写的导入方法,传入路径,返回dataset ,已经实现。希望对你有帮助。

public DataSet ImportExcel(string fileName)
{
//判断是否安装EXCEL
Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.ApplicationClass();
if (xlApp == null)
{
Page.ClientScript.RegisterStartupScript(GetType(),"z","");
return null;
}

//判断文件是否被其他进程使用
Microsoft.Office.Interop.Excel.Workbook workbook;
try
{
workbook = xlApp.Workbooks.Open(fileName, 0, false, 5, "", "", false, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "", true, false, 0, true, 1, 0);
}
catch
{
Page.ClientScript.RegisterStartupScript(GetType(),"z","");
return null;
}

//获得所有Sheet名称
int n = workbook.Worksheets.Count;
string[] SheetSet = new string[n];
System.Collections.ArrayList al = new System.Collections.ArrayList();
for (int i = 1; i <= n; i++)
{
SheetSet[i - 1] = ((Microsoft.Office.Interop.Excel.Worksheet)workbook.Worksheets[i]).Name;
}

//释放Excel相关对象
workbook.Close(null, null, null);
xlApp.Quit();
if (workbook != null)
{
System.Runtime.InteropServices.Marshal.ReleaseComObject(workbook);
workbook = null;
}
if (xlApp != null)
{
System.Runtime.InteropServices.Marshal.ReleaseComObject(xlApp);
xlApp = null;
}
GC.Collect();

//把EXCEL导入到DataSet
DataSet ds = new DataSet();
string connStr = " Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source = " + fileName + ";Extended Properties=Excel 8.0";
using (OleDbConnection conn = new OleDbConnection(connStr))
{
conn.Open();
OleDbDataAdapter da;
for (int i = 1; i <= n; i++)
{
string sql = "select * from [" + SheetSet[i - 1] + "$] ";
da = new OleDbDataAdapter(sql, conn);
da.Fill(ds, SheetSet[i - 1]);
da.Dispose();
}

conn.Close();
conn.Dispose();
}
//DataRow[] dr = new DataRow[ds.Tables[0].Rows.Count];

ds.Tables[0].Rows.RemoveAt(ds.Tables[0].Rows.Count - 1);
return ds;
}追问我没有修改代码,可是打开excel莫名其妙的变成了可以编辑的状态,问题似乎解决了。但是现在我要打开word,word又变成了只读文档,如果你知道解决办法请告诉我,谢谢了。
全部回答
  • 1楼网友:迟山
  • 2021-03-23 03:49
推荐NPOI操作excel
  • 2楼网友:摆渡翁
  • 2021-03-23 02:23
Ctrl+Shift+Esc 打开任务管理器,在进程里面找到EXCEL.EXE,把他们全部Kill掉 再走你的程序就没问题了
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯