現在Excelのスプレッドシートからセルを読み込もうとしていますが、それが望ましくないときにセルを再フォーマットするようです。私はそれが計画のテキストとして来ることを望みます。私はこの問題に対するいくつかの解決策を読んで、それらを実装しましたが、私はまだ同じ問題を抱えています。Excelから列を読み込み、セルを再フォーマットする
リーダーは数字と数字の日付を日付に変換します。
例:1900年2月9日午前12:00:00:42398
と
40.00がために出てくる:
2016年1月29日(金曜日)にあることを出てきます
コード:
string stringconn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + files[0] + ";Extended Properties=\"Excel 12.0;IMEX=1;HDR=NO;TypeGuessRows=0;ImportMixedTypes=Text\"";
try {
OleDbConnection conn = new OleDbConnection(stringconn);
OleDbDataAdapter da = new OleDbDataAdapter("SELECT * FROM [CUAnswers$]", conn);
DataTable dt = new DataTable();
try {
printdt(dt);
私はそれがExcelスプレッドシートを読み取るために相互運用機能を使用した以外、同様の問題があった。これは私がシートに
public void printdt(DataTable dt) {
int counter1 = 0;
int counter2 = 0;
string temp = "";
foreach (DataRow dataRow in dt.Rows) {
foreach (var item in dataRow.ItemArray) {
temp += " ["+counter1+"]["+counter2+"]"+ item +", ";
counter2++;
}
counter1++;
logger.Debug(temp);
temp = "";
counter2 = 0;
}
}
これは役に立ちません。私はそれを再変換したくない。私はそれが正しいフォーマットで細胞から出て来たい。または計画テキストとして使用することができます。 –
セルを文字列として読み込みたい場合は、文字列として入力する必要があり、datetime(または何でも)として入力する必要はありません。可能であれば、スプレッドシートを変更し、それらのセルをテキストに変換する必要があります。値の前に単一引用符を付ける必要があります。 (これはおそらくあなたが望む答えではありません) –
@Sari私の編集で新しいアイデアを見てください。 –