- ベストアンサー
RGB値をExcelにエクスポートできませんか?
quenistaの回答
>CSV形式のデータを使うだけなら、C等でツールを作ればデータとしては、作れますが...。 取りあえず、簡単に作ってみましたので、以下に貼ってみます。(一応、BCCで動作は確認しました。) ------------------------------ /* BMP to CSV Convert */ /* Present from Quenista */ /* 2001/12/14-2001/12/14 */ #define VERSION (1.00) #define HELP_STRINGS "BMP2CSV _InputFile_ [_OutoutFile_]\n" #include <dos.h> #include <conio.h> #include <stdio.h> #include <string.h> #include <stdlib.h> #include <stdarg.h> /* BMP Data Format */ typedef struct BmpFileHeader{ unsigned char szType[2]; /* 'BM' Strings */ unsigned long ulSize; /* Hedder+Infomation+Pallet+Data Size */ unsigned short usReserved1; /* Reserved */ unsigned short usReserved2; /* Reserved */ unsigned long ulOffBits; /* Hedder+Infomation+Pallet Size */ }BMHD; typedef struct BmpInfomation{ unsigned long ulSize; /* Infomation Data Size */ unsigned long ulWidth; /* X Pixel Size */ unsigned long ulHeight; /* Y Pixel Size */ unsigned short usPlanes; unsigned short usBitCount; /* 1Pixel Bits Size */ unsigned long ulCompression; unsigned long ulSizeImage; /* Data Byte Size */ unsigned long ulXPelsPerMeter; /* X Pixel/Meter */ unsigned long ulYPelsPerMeter; /* Y Pixel/Meter */ unsigned long ulClrUsed; unsigned long ulClrImportant; }BMIF; typedef struct PalletInfomation{ unsigned char ucB; unsigned char ucG; unsigned char ucR; unsigned char ucC; }PLIF; void error_exit(char *str,...) { int iError; iError=(errno==(int)NULL)?-1:errno; fputc('\n',stderr); fprintf(stderr,str); fputc('\n',stderr); fcloseall(); exit(iError); } int bmp_csv(FILE *fpOutput,FILE *fpInput) { int iLoop; int iLoopX,iLoopY,iPallet; unsigned long ulBmpDataStack; BMHD bmhdBmpHedder; BMIF bmifBmpInfomation; PLIF plifBmpPallet[256]; PLIF plifPallet; /* Get BMP Headder */ fread((void *)&bmhdBmpHedder,sizeof(BMHD),1,fpInput); if(strncmp(bmhdBmpHedder.szType,"BM",2)!=0) error_exit("Bmp Data Error!"); fread((void *)&bmifBmpInfomation,sizeof(BMIF),1,fpInput); /* Get BMP Pallet */ for(iLoop=0;iLoop<(int)((bmhdBmpHedder.ulOffBits-(sizeof(BMHD)+sizeof(BMIF)))/4);iLoop++){ fread((void *)&plifBmpPallet[iLoop],sizeof(PLIF),1,fpInput); } /* Make CSV Hedder */ for(iLoop=0;iLoop<(int)bmifBmpInfomation.ulWidth;iLoop++){ fprintf(fpOutput,"B,G,R,"); } fprintf(fpOutput,"\n"); /* Get Map Data */ for(iLoopY=0;iLoopY<(int)bmifBmpInfomation.ulHeight;iLoopY++){ for(iLoopX=0;iLoopX<(int)bmifBmpInfomation.ulWidth;iLoopX++){ if((iLoopX%(8/bmifBmpInfomation.usBitCount))==0){ fread((char *)&ulBmpDataStack,((bmifBmpInfomation.usBitCount+7)/8),1,fpInput); } if(bmifBmpInfomation.usBitCount<=8){ iPallet=(unsigned char)(ulBmpDataStack&(~(0xFF>>bmifBmpInfomation.usBitCount)))>>(8-bmifBmpInfomation.usBitCount); plifPallet.ucB=plifBmpPallet[iPallet].ucB; plifPallet.ucR=plifBmpPallet[iPallet].ucR; plifPallet.ucG=plifBmpPallet[iPallet].ucG; ulBmpDataStack<<=bmifBmpInfomation.usBitCount; } else{ plifPallet.ucB=(unsigned char)(ulBmpDataStack&(~(0xFF<<(bmifBmpInfomation.usBitCount/3)))); ulBmpDataStack>>=((bmifBmpInfomation.usBitCount/3)-1); plifPallet.ucR=(unsigned char)(ulBmpDataStack&(~(0xFF<<(bmifBmpInfomation.usBitCount/3)))); ulBmpDataStack>>=((bmifBmpInfomation.usBitCount/3)-1); plifPallet.ucG=(unsigned char)(ulBmpDataStack&(~(0xFF<<(bmifBmpInfomation.usBitCount/3)))); ulBmpDataStack>>=((bmifBmpInfomation.usBitCount/3)-1); } fprintf(fpOutput,"%03d,%03d,%03d,",plifPallet.ucB,plifPallet.ucR,plifPallet.ucG); } fprintf(fpOutput,"\n"); } fclose(fpInput); fclose(fpOutput); return 0; } void main(unsigned int argc,unsigned char *args[]) { FILE *fpInput; FILE *fpOutput; unsigned int uiCount; printf("BMP to CSV Convert Tool Version %.2f Copyright(c) Quenista\n",VERSION); /* Initial */ uiCount=1; if(argc<2) error_exit(HELP_STRINGS); while(args[uiCount][0]=='-'){ switch(args[uiCount][1]){ default : error_exit(HELP_STRINGS); break; } uiCount++; } if((fpInput=fopen(args[uiCount],"rb"))==NULL) error_exit("Input File Open Error!"); uiCount++; if(argc>uiCount){ if((fpOutput=fopen(args[uiCount],"w+b"))==NULL) error_exit("Output File Open Error!"); } else{ fpOutput=stdout; } if(bmp_csv(fpOutput,fpInput)!=0) error_exit("Abnormal End!"); fcloseall(); printf("Convert End!\n"); } ------------------------------ 取りあえず、普通のコンパイラなら通ると思いますが、コンパイル時オプションにバイトのAlignだけ注意が必要です。
関連するQ&A
- 「Excelにエクスポート」ができない
IE9をインストールしたら「Excelにエクスポート」ができなくなりました。試しにIE8に戻したらこれまで通りできます。IE9でもエクスポートできるようにするにはどうしたらいいでしょうか?(Win7HomePremium ・Excel2007を使っています)よろしくお願いします。
- 締切済み
- Windows 7
- HPのデータをEXCELにエクスポートしたい、、
HPのデータをEXCELにエクスポートしたいのですが、 画像形式(GIF)のものはできるのでしょうか? また、できるのなら、どうやってするのでしょうか? また、できないとしても、どうにか工夫して、手写しより簡単にできる方法ないでしょうか? よろしくお願いします。
- 締切済み
- オフィス系ソフト
- AccessからEXCELへのエクスポート・・・みたいな・・・・
accessからexcelへのデータエクスポートなのですが・・・ excelへの指定されたセルへのエクスポートならわかるのですが・・・ accessのデータ量(レコード数)が変化するので・・・その方法がわかりません・・・ 教えてください・・・。
- 締切済み
- その他(プログラミング・開発)
- ACCESSからエクセルへのエクスポート
非常に困っています。どなたか教えて下さい。 エクセルのCSVファイルからアクセスのテーブルにデータをインポートして そのテーブルから新しいエクセルファイルにデータをエクスポートします。 (1)エクセルの元ファイル 列1 数値 1桁 (2)アクセスにインポート(インポート定義) 列1 数値型 1桁 書式で3桁にする。 (3)エクセルにエクスポート(エクスポート定義) 列1 1桁になってしまいます。 ※(2)までは書式に000を入れることで解決しました。 (3)にエクスポートした状態で 列1を3桁にしたいのです 例えば0→000 ちなみにアクセスは2002を使用しています。 どなたか教えて下さい。本当に困っています。
- 締切済み
- その他(データベース)
- エクセルをワードへエクスポート
エクセルをワードへエクスポートしたいんですが アクセスを持ってません。 他にエクスポートできるようなソフトってありますか? 出来れば無料ダウンロードできるようなのがあれば大変助かるんですが。
- ベストアンサー
- オフィス系ソフト
- ACCESSからEXCELにエクスポートしたい!
かなり困っています... ACCESSからEXCELにデータをエクスポートしたいのですが、ACCESS側の テーブルの中身すべてをEXCELに吐き出すのではなくて、1レコードづつ エクスポートしたいのです。 やりたいことは... ACCESS側のテーブルをEXCELにエクスポートする際、あらかじめ、テーブルの 一つのフィールド(部門コード)を昇順に並べておいて、エクスポートしていきながら、部門コードが変わったら、それまでの部門の金額の合計を出し、その合計もエクスポートして、次の部門に進み、最終的に金額の総合計をだそうと考えています。 この部分をVBAで組もうと考えているのですが... エクセルのレイアウトを簡単に書くと 部門 100 名称 金額 aaa 1000 bbb 500 合計 1500 部門 200 名称 金額 ccc 700 ddd 400 合計 1100 こんな感じです ちなみにOS WIN98 ACCESS2000,EXCEL2000です 皆様、よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- Access⇒エクセルへのエクスポートについて
Accessからエクセルへのエクスポートで質問です。 Accessのテーブルの中の一つのフィールド(名前は[合計])で、=[単価]*[数量]という計算をさせたとします。 このテーブルをエクセルにエクスポートし、エクセル上で例えば [単価]の累積合計 =SUM(**:**) [数量]の累積合計 =SUM(**:**) [合計]の累積合計 =SUM(**:**) をしたとすると、[単価]と[数量]は値が得られるのですが、Accessで計算させた[合計]は0になって値を得ることができません。 [単価]と[合計]は通貨型、[数量]は数値型に設定しています。 Accessのテーブル上では[単価]と[合計]には¥マークがついているのですが、エクセルにエクスポートすると、[単価]は¥マークがついておらず、[合計]には¥マークがついています。 Accessで計算させたフィールドは、エクセルにエクスポートした場合、数字として認識されないのでしょうか?文字になってる? うまく説明出来なくてすみませんが、Accessをエクスポートし、エクセルで加工計算を色々したいのですが、[合計]が計算出来なくて困っているという事です。 何故なのか全く判らないので教えてください。
- ベストアンサー
- オフィス系ソフト
- ビットマップ画像をRGB値でエクセルに出力したいんですが・・・
ビットマップ画像を取り込んで、1ピクセル毎のRGB値をエクセルに出力したいのですが、そのようなプログラムがわかる方やフリーソフトがありましたら教えて下さい!!! C#っていうのが一応手元にあります。 全くの素人でわかりづらくて申し訳ありません。。
- 締切済み
- C・C++・C#
- エクセルからアクセスへエクスポートしたときのハイパーリンク型について
アクセスからエクセルへのエクスポートについて テ-ブル1を ファイル→エクスポート→エクセルファイル(97-2003)にして出力 したときにハイパーリンク型が「#http://~#」 となり文字列になるのですが そのままハイパーリンク型でエクセルにエクスポートするにはどうすればいいでしょうか? 宜しくお願い致します。
- ベストアンサー
- オフィス系ソフト