SQL テーブルからデータを読み取り、そこから EXCEL レポートを生成する ASP.NET C# コード/プログラムがある場合、EXCEL/CSV セルに一重引用符を追加するにはどうすればよいですか? 生成された数値は科学的価値ではないため、正確になります(データを持つセルへの追加の一重引用符文字)。データの前に一重引用符を追加する必要がありますが、追加すると、一重引用符自体は表示されず、正確な数が表示されます。
問題は下の画像にあります。SQL Result からは正確な数値ですが、コードを使用すると科学的な値に丸められます。画像: http://photoadder.com/show-image.php?id=0ca30b7f4ba55fe359c889af62a278a4 (クリックして拡大)
Excel my self に一重引用符を入力すると、これが結果になります。画像: http://photoadder.com/show-image.php?id=48366a8093afc8555bcf7c990fc3648e
ここに私のコードの一部があります
public DataTable GetData()
{
var dataTable = new DataTable();
SqlConnection conn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["connectionString"].ConnectionString);
conn.Open();
string query = "select * from table abc";
SqlCommand cmd = new SqlCommand(query, conn);
DataTable t1 = new DataTable();
using (SqlDataAdapter a = new SqlDataAdapter(cmd))
{
a.Fill(t1);
}
return t1;
}
#endregion
protected void btnGenerateReport_Click(object sender, EventArgs e)
{
System.Diagnostics.Debug.WriteLine("PLaccount system on click");
var dataTable = GetData();
StringBuilder builder = new StringBuilder();
List<string> columnNames = new List<string>();
List<string> rows = new List<string>();
foreach (DataColumn column in dataTable.Columns)
{
columnNames.Add(column.ColumnName);
if (column.ColumnName.ToString() == "PL_ACCOUNT_NUMBER")
{
System.Diagnostics.Debug.WriteLine("PLaccount system match");
}
}
builder.Append(string.Join(",", columnNames.ToArray())).Append("\n");
foreach (DataRow row in dataTable.Rows)
{
List<string> currentRow = new List<string>();
foreach (DataColumn column in dataTable.Columns)
{
object item = row[column];
currentRow.Add(item.ToString());
}
rows.Add(string.Join(",", currentRow.ToArray()));
}
builder.Append(string.Join("\n", rows.ToArray()));
Response.Clear();
Response.ContentType = "text/csv";
Response.AddHeader("Content-Disposition", "attachment;filename=myfilename.csv");
Response.Write(builder.ToString());
Response.End();