私はExcelファイルを作成しています。すぐに開く必要があります。 明らかに、私はlocalhost上で作成するとファイルを取得できますが、IIS上でWebアプリケーションを公開すると、サーバー側で作成していると思われるため動作しません...EXCELを作成して開きます
したがって、サーバーにアップロードしようとすると、それをダウンロードした後、私はそれを作成することはできません、私はlocalhostの作品でこれを実行する場合は、しかし、私は公開しないときは動作しません。
アドバイスはありますか?
これは私のコードです:
私はExcelのこのライブラリを使用します。私は私のExcelファイルを開始、その後
using Microsoft.Office.Core;
using Excelo = Microsoft.Office.Interop.Excel;
using Microsoft.Office.Interop;
using System.Reflection;
using System.Globalization;
を:あなたは(公式)を使用することができ
private void sacConsulPend_GenRemito()
{ // DB
string conn = ConfigurationManager.ConnectionStrings["conn"].ConnectionString;
DataSet dsRemito = new DataSet();
DataTable dtCons = new DataTable();
using (SqlConnection sqlCon = new SqlConnection(conn))
{
using (SqlCommand cmd = new SqlCommand())
{
try
{ //SP for data query
cmd.CommandType = System.Data.CommandType.StoredProcedure;
cmd.CommandText = "SACBUS_CONSUL_SOLICITUDEXIST";
cmd.Parameters.AddWithValue("@ID_CONSULTA",
Convert.ToInt32(lblSac_ConPenDet_idCons.Text.Replace(" ", "")));
cmd.Connection = sqlCon;
sqlCon.Open();
SqlDataAdapter dapC = new SqlDataAdapter(cmd);
dapC.Fill(dsRemito);
}
catch (Exception sqlex)
{
throw sqlex;
}
}
}
Excelo.Application oXL;
Excelo._Workbook oWB;
Excelo._Worksheet oSheet;
Excelo.Range oRng;
try
{
//Start Excel
oXL = new Excelo.Application();
//new blank workbook.
oWB = (Excelo._Workbook)(oXL.Workbooks.Add(System.Reflection.Missing.Value));
oSheet = (Excelo._Worksheet)oWB.ActiveSheet;
object misValue = System.Reflection.Missing.Value;
//Text Format
oSheet.get_Range("A1", "Z1000").Font.Name = "Courier New";
oSheet.get_Range("A1", "Z1000").Font.Size = 7;
oSheet.get_Range("A1", "Z1000").Font.Bold = true;
oSheet.get_Range("A1", "Z1000").NumberFormat = "@";
oSheet.get_Range("D1", "E1").Cells.Merge();
oSheet.get_Range("A1", "F1").Font.Bold = true;
oSheet.get_Range("A1", "F1").Font.Italic = true;
oSheet.get_Range("A1", "F1").VerticalAlignment = Excelo.XlVAlign.xlVAlignCenter;
oSheet.get_Range("A1", "F1").HorizontalAlignment = Excelo.XlVAlign.xlVAlignCenter;
oSheet.get_Range("A1", "F1").Font.Size = 9;
//Logo Lockers
oSheet.Shapes.AddPicture(Server.MapPath("~/images/LockersLogo.jpg"), MsoTriState.msoFalse, MsoTriState.msoCTrue, 0, 0, 60, 20);
/*
Excel Content
*/
//Save ExcelFile
var filePath = Path.Combine(HttpContext.Current.Server.MapPath("~/Files/Envios/"), lblSac_ConPenDet_idCons.Text.Replace(" ", "") + ".xlsx");
oWB.SaveAs(filePath, Excelo.XlFileFormat.xlOpenXMLWorkbook, Missing.Value,
Missing.Value, false, false, Excelo.XlSaveAsAccessMode.xlNoChange,
Excelo.XlSaveConflictResolution.xlUserResolution, true,
Missing.Value, Missing.Value, Missing.Value);
}
catch (Exception thex)
{
String errorMessage;
errorMessage = "Error en la creacion del archivo Excel: ";
errorMessage = String.Concat(errorMessage, thex.Message);
errorMessage = String.Concat(errorMessage, " Line: ");
errorMessage = String.Concat(errorMessage, thex.Source);
}
}
アプリをダウンロードとしてそれを送っている必要があります。 –
Webサーバー上でInteropsを使用しないでください。彼らはシングルユーザーのデスクトップの外で実行されるように構築されていません。ファイルの作成に役立つライブラリが多数あります。あなたはトラブルを求めているだけです。 – krillgar
私は同意します - インタラクティブなプロセスではなく、Interopを使用しないでください。代わりにこれを試してみてください。 https://stackoverflow.com/questions/151005/create-excel-xls-and-xlsx-file-from-c-sharp –