我正在为我的女朋友写一个评分程序而且我一直试图将数据输出到我嵌入到程序中的excel文件中。我目前正在写一个空白的excel文件,但是想使用预先制作的excel文件,只需将数据导出到适当的单元格即可。我无法弄清楚如何告诉程序在资源文件夹中使用xls文件而不是制作一个空白的excel文件。这是迄今为止保存它的代码。我正在使用C#2008快递版。
由于
我的资源参考是:Properties.Resources.gradesheet
Excel.Application xlApp;
Excel.Workbook xlWorkBook;
Excel.Worksheet xlWorkSheet;
object misValue = System.Reflection.Missing.Value;
xlApp = new Excel.ApplicationClass();
xlWorkBook = xlApp.Workbooks.Add(misValue);
xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);
//add data to excel
xlWorkSheet.Cells[1, 1] = firstName;
xlWorkSheet.Cells[2, 1] = lastName;
xlWorkBook.Close(true, misValue, misValue);
xlApp.Quit();
releaseObject(xlWorkSheet);
releaseObject(xlWorkBook);
releaseObject(xlApp);
答案 0 :(得分:2)
您需要从资源中获取excel文件并将其保存到文件中。然后你可以在工作簿上打开一个:
xlApp.Workbooks.Open(fileName);
答案 1 :(得分:2)
这应该会帮助你。 (在.NET 4.5中测试)。
public void openExcelTemplateFromResources ()
{
string tempPath = System.IO.Path.GetTempFileName();
System.IO.File.WriteAllBytes(tempPath, Properties.Resources.excelResource);
Excel.Application excelApplication = new Excel.Application();
Excel._Workbook excelWorkbook;
excelWorkbook = excelApplication.Workbooks.Open(tempPath)
excelApplication.Visible = true; // at this point its up to the user to save the file
}
答案 2 :(得分:1)
正如John Koerner所说,Excel可以处理文件,因此您需要先将Excel文件保存到文件中。
但是,如果您可以使用.XLSX而不是.XLS,那么您最好使用EPPlus而不是Interop来创建Excel文件。它更容易,并没有Interop所做的所有问题。
基于this link,取决于您要对Excel文件执行的操作以及您将如何使用它,该方案略有不同。你可以:
filestream
或filename
。filename
传递给另一个进程(例如Excel)并从文件系统中打开它。 答案 3 :(得分:0)
首先,您应该使用此函数获取资源文件的流:
public static Stream GetResourceFileStream(string fileName)
{
Assembly currentAssembly = Assembly.GetExecutingAssembly();
// Get all embedded resources
string[] arrResources = currentAssembly.GetManifestResourceNames();
foreach (string resourceName in arrResources)
{
if (resourceName.Contains(fileName))
{
return currentAssembly.GetManifestResourceStream(resourceName);
}
}
return null;
}
然后您可以使用流,或者您可以将流保存到文件:How do I save a stream to a file。
答案 4 :(得分:0)
您可以创建Excel模板文件(.xlt
),然后根据该模板打开新的.xls
文件。此致,AB