有没有办法通过excel互操作保存对excel电子表格的更改(在这种情况下,我正在向其添加工作表),而不会提示用户是否要用更改覆盖现有文件.我不希望用户甚至在我的应用程序中看到电子表格打开,因此弹出一个消息框询问他们是否要覆盖该文件似乎非常不合适并且可能使用户感到困惑.
我正在使用workbook.SaveAs(fileloaction)方法.
这是我初始化excel互操作的COM引用对象的地方.
private Excel.Application app = null;
private Excel.Workbook workbook = null;
public Excel.Workbook Workbook
{
get { return workbook; }
set { workbook = value; }
}
private Excel.Worksheet worksheet = null;
private Excel.Range workSheet_range = null;
Run Code Online (Sandbox Code Playgroud)
下面是我用来关闭/保存excel文件的代码.workbook.close()方法行是据报道抛出未处理异常的行.
workbook.Close(true, startForm.excelFileLocation, Missing.Value);
Marshal.ReleaseComObject(app);
app = null;
System.GC.Collect();
Run Code Online (Sandbox Code Playgroud) 我正在尝试覆盖现有的 xml 文件(如果它已经存在)。
我使用下面的代码来检查文件是否存在,如果存在则覆盖它。现有文件是隐藏的,因此我在尝试覆盖之前取消隐藏它。
文件没有发生更改,但是覆盖不起作用。
下面是我使用的代码,减去我编写新 xml 数据的部分。
if(File.Exists(filePath))
{
File.SetAttributes(filePath,FileAttributes.Normal);
FileIOPermission filePermission =
new FileIOPermission(FileIOPermissionAccess.AllAccess,filePath);
FileStream fs = new FileStream(filePath, FileMode.Create);
XmlWriter w = XmlWriter.Create(fs);
}
Run Code Online (Sandbox Code Playgroud) 我有一个ac#应用程序,可以将用户的数据保存到xml文档中.我希望能够根据输入不同条件的用户动态更改xml节点的属性到文本框中,并选择保存/覆盖现有文件保存.问题是我不能简单地删除节点并使用new属性重新创建节点,因为节点具有无法删除的子节点.
有没有人有任何想法或建议?
XmlNode.Attributes方法没有提供一种方法,因为我可以告诉它只删除节点的属性并重新分配它.我可能错了.
我在VS 2010中使用安装项目来安装我创建的Windows窗体应用程序.安装项目效果很好,但是,如果我更新应用程序并更改安装项目的版本号和升级代码,则在再次运行安装项目时,它不会更新用户计算机上的应用程序.它将通过安装步骤并说安装成功,但是,用户计算机上的应用程序保持完全相同,而不是更新版本.奇怪的是,如果您再次运行安装项目,则会出现错误,指出已安装此版本的应用程序,并且必须使用添加/删除程序删除当前版本才能继续安装.之前是否还有其他人遇到此问题.我听说使用VS 2010中的安装项目可能无法实现这一点,但我希望情况并非如此,因为除了这个问题,这种方法对我来说很有用.
我试图将将用作标题的单元格的值居中.这是我目前用于格式化这些单元格的代码.我正在使用Excel Interop和C#.如何将此范围的单元格中的值居中.
public void createHeaders(int row, int col, string htext, string cell1,
string cell2, int mergeColumns, string b, bool font, int size, string
fcolor)
{
worksheet.Cells[row, col] = htext;
workSheet_range = worksheet.get_Range(cell1, cell2);
workSheet_range.Merge(mergeColumns);
switch (b)
{
case "BLUE":
workSheet_range.Interior.Color = System.Drawing.Color.Red.ToArgb();
break;
case "GAINSBORO":
workSheet_range.Interior.Color =
System.Drawing.Color.Gainsboro.ToArgb();
break;
//case "Turquoise":
// workSheet_range.Interior.Color =
//System.Drawing.Color.Turquoise.ToArgb();
//break;
case "PeachPuff":
workSheet_range.Interior.Color =
System.Drawing.Color.PeachPuff.ToArgb();
break;
default:
// workSheet_range.Interior.Color = System.Drawing.Color..ToArgb();
break;
}
//workSheet_range.Borders.Color = System.Drawing.Color.Black.ToArgb();
//workSheet_range.Borders = null;
workSheet_range.Font.Bold = font;
workSheet_range.ColumnWidth = …Run Code Online (Sandbox Code Playgroud) 我正在尝试在32位Program Files文件夹中创建一个文件目录(文件夹),以存储用户将在程序中创建的数据.但是,当我尝试这样做时,它一直说访问被拒绝.反正是否允许程序访问32位程序文件文件夹并向其添加后续文件夹和文件?以下是我的代码,由于没有权限而产生运行时错误.
string mainDirectory=Environment.GetFolderPath(Environment.SpecialFolder.ProgramFilesX86)+"\\UKC Trial Reporter Files";
if (!Directory.Exists(mainDirectory))
{
Directory.CreateDirectory(mainDirectory);
}
Run Code Online (Sandbox Code Playgroud)