我使用C#编码生成了excel文件,如下所示
C#编码:
protected void Page_Load(object sender, EventArgs e)
{
var doc = new SpreadsheetDocument(@"D:\JOSEPH\GenerateExcelSheet\OpenXmlPackaging.xlsx");
Worksheet sheet1 = doc.Worksheets.Add("My Sheet");
sheet1.Cells[1, 1].Value = "Test";
sheet1.Cells["A1"].Value = 1;
sheet1.Cells["C3"].Style = new OpenXmlPackaging.Style {
Borders = new Borders(BorderStyles.Thick),
Font = new Font
{
Name = "Consolas",
Size = 10,
Style = FontStyles.DoubleUnderline | FontStyles.Bold
},
NumberFormat = new NumberFormat("#,##0.0;[Red](#,##0.0)"),
Alignment = new Alignment
{
HorizontalAlignment = HorizontalAlignment.Right,
VerticalAlignment = VerticalAlignment.Top,
WrapText = true,
Rotation = 45
},
};
sheet1.Cells.CreateRange("B10:D5").MergeCells();
sheet1.AutoFitColumns();
sheet1.SetColumnWidth(3, 12);
}
但是当我尝试打开excel文件时,会出现一个消息框“”
答案 0 :(得分:2)
简短的回答是,您不应该尝试在服务器上创建这样的Excel文件。使用Excel API执行此操作存在技术问题和许可问题 - 您可以在此处阅读更多内容http://support.microsoft.com/default.aspx/kb/257757
技术问题可以很好地解释为什么你的档案已经腐败。
更好的方法是使用不依赖Excel API的库,我在这里的问题/答案Reading Excel Files as a Server Process中列出了一些可能对您有所帮助。
答案 1 :(得分:0)
用于打开Excel:
ApplicationClass excel = new ApplicationClass();
Worksheet sheet1 = Activate(excel);
//insert you'r code
使用它来保存并关闭Excel:
excel.Visible = true;
object misValue = System.Reflection.Missing.Value;
sheet1.SaveAs(filename, XlFileFormat.xlWorkbookDefault, misValue, misValue, misValue, misValue, misValue, misValue, misValue, misValue);
excel.Application.Quit();
excel.Quit();
Marshal.ReleaseComObject(ws);
Marshal.ReleaseComObject(excel);
excel = null;