Как экспортировать сетевое представление ASP NET, содержащее изображения, в Excel с автоматическим подгонкой изображения - PullRequest
0 голосов
/ 28 февраля 2019

У меня есть сетка, содержащая изображения, и я хочу экспортировать ее в Excel.Но моя проблема в том, что когда я экспортирую его в Excel, размер изображений не соответствует высоте и ширине ячейки Excel.

Поэтому мой вопрос: что мне делать, чтобы решить эту проблему?

Это то, что я пробовал

Response.Clear();
Response.Buffer = true;
Response.AddHeader("content-disposition", "attachment;filename=GridViewExport.xls");
Response.Charset = "";
Response.ContentType = "application/vnd.ms-excel";
StringWriter sw = new StringWriter();
HtmlTextWriter hw = new HtmlTextWriter(sw);
GV5SAudit.AllowPaging = false;
this.BindGridAudit(FStatus.SelectedValue, FStartDate.Text, FEndDate.Text, FArea.SelectedValue);

GV5SAudit.Columns[1].Visible = false;
GV5SAudit.Columns[3].Visible = false;
GV5SAudit.Columns[11].Visible = false;
GV5SAudit.Columns[14].Visible = false;
GV5SAudit.Columns[16].Visible = false;
GV5SAudit.Columns[18].Visible = false;
GV5SAudit.Columns[19].Visible = false;
GV5SAudit.Columns[20].Visible = false;
GV5SAudit.Columns[21].Visible = false;
GV5SAudit.HeaderRow.ForeColor = System.Drawing.Color.Black;
GV5SAudit.HeaderRow.HorizontalAlign = HorizontalAlign.Center;

for (int i = 0; i < 13; i++)
{
    GV5SAudit.Columns[i].ItemStyle.HorizontalAlign = HorizontalAlign.Center;
}

GV5SAudit.RowStyle.VerticalAlign = VerticalAlign.Middle;
GV5SAudit.HeaderRow.BackColor = System.Drawing.Color.Gray;

for (int i = 0; i < GV5SAudit.Rows.Count;i++ )
{
    for(int j=0; j<13; j++)
    {
       GV5SAudit.Rows[i].Cells[j].ForeColor = System.Drawing.Color.Black;
    }
}

for (int i = 0; i < GV5SAudit.Rows.Count; i++)
{
    GridViewRow row = GV5SAudit.Rows[i];
    row.Attributes.Add("class", "textmode");
}

GV5SAudit.RenderControl(hw);

string style = @"<style> .textmode { mso-number-format:\@; } </style>";
Response.Write(style);
Response.Output.Write(sw.ToString());
Response.Flush();
Response.End();
...