C# 代码操作内网上的excel问题

塔克茜丝 2020-05-26 10:52:20
拜论坛牛人所赐,实现了cshrap读写excel
 #region excel相关
private string excelpath = @"\\10.10.101.17\工作记录表.xlsx";

private Microsoft.Office.Interop.Excel.Application _xlApplication;

private Workbook _xlWorkBook;

private Worksheet _xlWorkSheet;

private void ExcelDo()
{
_xlApplication = new Microsoft.Office.Interop.Excel.Application
{
Visible = false, //Excel应用是否可见
WindowState = XlWindowState.xlMinimized, //Excel窗口弹出状态
DisplayAlerts = false //是否允许Excel弹出警告
};
_xlWorkBook = _xlApplication.Workbooks.Add(excelpath); //对应你的Excel模板路径
_xlWorkSheet = _xlWorkBook.Sheets.get_Item(1); //1, 表示要操作第一个Sheet,Excel所有索引都是从1开始编号的
_xlWorkSheet.Select();

//_xlWorkSheet.Cells[1, 1].Value = "MyValue"; //设置单元格文字, 或者
_xlWorkSheet.Range["A50"].Value = "MyValue1"; //设置单元格文字
//_xlWorkBook.Save();




string myValue1 = _xlWorkSheet.Range["C3"].Text; //获取单元格文字, 或者
string myValue2 = _xlWorkSheet.Cells[5, 3].Text;//获取单元格文字

MessageBox.Show(myValue1 + "\r\n" + myValue2);

_xlWorkSheet.SaveAs(excelpath);

ExitApplication(); //这个是关闭最死的方法,死得透透的,直接_xlApplication.Quit();会有残留进程。
}

//先 using System.Runtime.InteropServices;
[DllImport("User32.dll", CharSet = CharSet.Auto)]
public static extern int GetWindowThreadProcessId(IntPtr hwnd, out int ID);

//完全退出
public void ExitApplication()
{
_xlApplication.Quit();
GetWindowThreadProcessId(new IntPtr(_xlApplication.Hwnd), out int k);
System.Diagnostics.Process.GetProcessById(k).Kill();
}

#endregion
private void button1_Click(object sender, EventArgs e)
{
ExcelDo();
MessageBox.Show("excel退出了!");

}


按照这个,excelpath是本地的话,没有问题,但是用上文中的内网地址。
实际操作的时候,会出现有个下载的提示框,然后报错,如何解决?

...全文
401 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
塔克茜丝 2020-06-06
  • 打赏
  • 举报
回复
多谢各位,我直接把那个execl共享取消了就好
  • 打赏
  • 举报
回复
试试先 copy 然后打开副本。
  • 打赏
  • 举报
回复
那没办法的,你说的情况是被其他程序占用,锁住文件的情况没法子的。
塔克茜丝 2020-05-29
  • 打赏
  • 举报
回复
引用 5 楼 兔子家族-二哥 的回复:
[quote=引用 1 楼 塔克茜丝 的回复:]
发现问题了...是因为这个内网上的excel文档打开了共享权限,那么这个问题怎么解决?求指教


设置为共享没问题啊,你看看他权限呢? 右键 属性 安全 给他添加个 everyone 设置 完全控制[/quote]

这个共享是指同时几个人都可以打开编辑。一般没共享的,放在网上,第一个人打开后,其他人再去打开,会提示已经被打开,只能以只读方式打开,如果修改后保存,会要求你另存为,看上去和我现在遇到的这个情况比较像。
joe_free 2020-05-29
  • 打赏
  • 举报
回复
多谢大佬分享
  • 打赏
  • 举报
回复
你的共享文件路径,明显不对吧
塔克茜丝 2020-05-28
  • 打赏
  • 举报
回复
是否有高手指教,这个问题蛮困扰我的
  • 打赏
  • 举报
回复
引用 1 楼 塔克茜丝 的回复:
发现问题了...是因为这个内网上的excel文档打开了共享权限,那么这个问题怎么解决?求指教


设置为共享没问题啊,你看看他权限呢? 右键 属性 安全 给他添加个 everyone 设置 完全控制
塔克茜丝 2020-05-28
  • 打赏
  • 举报
回复
是对的,但是这个excel文档被老板设置为共享了
塔克茜丝 2020-05-27
  • 打赏
  • 举报
回复
发现问题了...是因为这个内网上的excel文档打开了共享权限,那么这个问题怎么解决?求指教

110,571

社区成员

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

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

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